{
 "openapi": "3.0.3",
 "info": {
  "title": "APIVoid API",
  "version": "2.0",
  "description": "APIVoid v2 threat analysis, domain/IP intelligence, and security APIs. All endpoints use HTTPS POST with Content-Type: application/json and an X-API-Key header. Successful requests return HTTP 200; any other status is an error and never consumes credits. Docs: https://docs.apivoid.com/ \u2014 credits: https://docs.apivoid.com/how-credits-work/ \u2014 rate limits: https://docs.apivoid.com/rate-limit/ \u2014 errors: https://docs.apivoid.com/errors/",
  "contact": {
   "url": "https://www.apivoid.com/contacts/"
  },
  "termsOfService": "https://www.apivoid.com/terms-of-service/"
 },
 "externalDocs": {
  "url": "https://docs.apivoid.com/",
  "description": "APIVoid Documentation"
 },
 "servers": [
  {
   "url": "https://api.apivoid.com/v2"
  }
 ],
 "security": [
  {
   "ApiKeyAuth": []
  }
 ],
 "tags": [
  {
   "name": "Account Info API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/account-info-api/"
   }
  },
  {
   "name": "ASN Info API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/asn-info-api/"
   }
  },
  {
   "name": "BIMI Validator API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/bimi-validator-api/"
   }
  },
  {
   "name": "DKIM Validator API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/dkim-validator-api/"
   }
  },
  {
   "name": "DMARC Validator API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/dmarc-validator-api/"
   }
  },
  {
   "name": "DNS Lookup API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/dns-lookup-api/"
   }
  },
  {
   "name": "DNS Propagation API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/dns-propagation-api/"
   }
  },
  {
   "name": "DNSSEC Status API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/dnssec-status-api/"
   }
  },
  {
   "name": "Domain Age API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/domain-age-api/"
   }
  },
  {
   "name": "Domain Info API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/domain-info-api/"
   }
  },
  {
   "name": "Domain Reputation API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/domain-reputation-api/"
   }
  },
  {
   "name": "Email Verify API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/email-verify-api/"
   }
  },
  {
   "name": "EML Insights API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/eml-insights-api/"
   }
  },
  {
   "name": "Geo Request API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/geo-request-api/"
   }
  },
  {
   "name": "HTML to PDF API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/html-to-pdf-api/"
   }
  },
  {
   "name": "HTML to PNG API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/html-to-png-api/"
   }
  },
  {
   "name": "HTTP Tracker API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/http-tracker-api/"
   }
  },
  {
   "name": "HTTP3 Status API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/http3-status-api/"
   }
  },
  {
   "name": "IP Reputation API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/ip-reputation-api/"
   }
  },
  {
   "name": "Parked Domain API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/parked-domain-api/"
   }
  },
  {
   "name": "Phone Validator API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/phone-validator-api/"
   }
  },
  {
   "name": "Ping Test API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/ping-test-api/"
   }
  },
  {
   "name": "Port Scan API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/port-scan-api/"
   }
  },
  {
   "name": "QR Scan API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/qr-scan-api/"
   }
  },
  {
   "name": "Reverse IP API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/reverse-ip-api/"
   }
  },
  {
   "name": "Screenshot API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/screenshot-api/"
   }
  },
  {
   "name": "Security Headers API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/security-headers-api/"
   }
  },
  {
   "name": "Site Trustworthiness API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/site-trustworthiness-api/"
   }
  },
  {
   "name": "SPF Validator API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/spf-validator-api/"
   }
  },
  {
   "name": "SSL Info API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/ssl-info-api/"
   }
  },
  {
   "name": "TLS Check API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/tls-check-api/"
   }
  },
  {
   "name": "Tor Test API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/tor-test-api/"
   }
  },
  {
   "name": "URL Reputation API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/url-reputation-api/"
   }
  },
  {
   "name": "URL Status API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/url-status-api/"
   }
  },
  {
   "name": "URL to PDF API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/url-to-pdf-api/"
   }
  },
  {
   "name": "VPN Test API",
   "externalDocs": {
    "url": "https://docs.apivoid.com/vpn-test-api/"
   }
  }
 ],
 "paths": {
  "/account-info": {
   "post": {
    "operationId": "account_info",
    "tags": [
     "Account Info API"
    ],
    "summary": "Account Info API",
    "description": "Get details about your APIVoid account and subscription: plan name, credits balance, credits used, next reset, and overage status. This endpoint consumes no credits.\n\nFull reference: https://docs.apivoid.com/account-info-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/account-info-api/",
     "description": "Account Info API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "credits": {
           "type": "object",
           "properties": {
            "remained": {
             "type": "integer",
             "description": "Number of API credits remaining on the account."
            },
            "next_reset_ts": {
             "type": "integer",
             "description": "Unix timestamp of the next credits reset."
            },
            "next_reset_datetime": {
             "type": "string",
             "description": "Date and time of the next credits reset."
            },
            "next_reset_days": {
             "type": "integer",
             "description": "Number of days left until the next credits reset."
            }
           }
          },
          "overage": {
           "type": "object",
           "properties": {
            "allowed": {
             "type": "boolean",
             "description": "Returns true if overage is allowed on the account plan."
            },
            "enabled": {
             "type": "boolean",
             "description": "Returns true if overage is enabled on the account."
            },
            "credits_consumed": {
             "type": "integer",
             "description": "Number of overage credits consumed in the current period."
            },
            "max_limit": {
             "type": "integer",
             "description": "Maximum number of overage credits that can be consumed."
            }
           }
          },
          "usage_stats": {
           "type": "object",
           "properties": {
            "daily": {
             "type": "object",
             "properties": {
              "dates": {
               "type": "array",
               "items": {
                "type": "object",
                "properties": {
                 "date": {
                  "type": "string",
                  "description": "Date of the usage entry, format is Y-m-d."
                 },
                 "credits": {
                  "type": "integer",
                  "description": "Credits consumed on that day."
                 }
                }
               },
               "description": "List of recent days with the credits consumed on each day."
              },
              "total": {
               "type": "integer",
               "description": "Total credits consumed across the daily entries shown."
              }
             }
            },
            "monthly": {
             "type": "object",
             "properties": {
              "dates": {
               "type": "array",
               "items": {
                "type": "object",
                "properties": {
                 "date": {
                  "type": "string",
                  "description": "Month of the usage entry, format is Y-m."
                 },
                 "credits": {
                  "type": "integer",
                  "description": "Credits consumed in that month."
                 }
                }
               },
               "description": "List of recent months with the credits consumed on each month."
              }
             }
            }
           }
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "credits": {
          "remained": 5851025,
          "next_reset_ts": 1759877820,
          "next_reset_datetime": "2025-10-07 22:57:00",
          "next_reset_days": 4
         },
         "overage": {
          "allowed": false,
          "enabled": false,
          "credits_consumed": 0,
          "max_limit": 250000
         },
         "usage_stats": {
          "daily": {
           "dates": [
            {
             "date": "2025-10-03",
             "credits": 107060
            },
            {
             "date": "2025-10-02",
             "credits": 161609
            },
            {
             "date": "2025-10-01",
             "credits": 156491
            },
            {
             "date": "2025-09-30",
             "credits": 179471
            },
            {
             "date": "2025-09-29",
             "credits": 206062
            },
            {
             "date": "2025-09-28",
             "credits": 202777
            },
            {
             "date": "2025-09-27",
             "credits": 195988
            },
            {
             "date": "2025-09-26",
             "credits": 212962
            },
            {
             "date": "2025-09-25",
             "credits": 194203
            },
            {
             "date": "2025-09-24",
             "credits": 218459
            },
            {
             "date": "2025-09-23",
             "credits": 216841
            },
            {
             "date": "2025-09-22",
             "credits": 198665
            },
            {
             "date": "2025-09-21",
             "credits": 142136
            },
            {
             "date": "2025-09-20",
             "credits": 146458
            },
            {
             "date": "2025-09-19",
             "credits": 225072
            },
            {
             "date": "2025-09-18",
             "credits": 227521
            },
            {
             "date": "2025-09-17",
             "credits": 225049
            },
            {
             "date": "2025-09-16",
             "credits": 221269
            },
            {
             "date": "2025-09-15",
             "credits": 218528
            },
            {
             "date": "2025-09-14",
             "credits": 207953
            },
            {
             "date": "2025-09-13",
             "credits": 206449
            },
            {
             "date": "2025-09-12",
             "credits": 218775
            },
            {
             "date": "2025-09-11",
             "credits": 184718
            },
            {
             "date": "2025-09-10",
             "credits": 209747
            },
            {
             "date": "2025-09-09",
             "credits": 228334
            },
            {
             "date": "2025-09-08",
             "credits": 227776
            },
            {
             "date": "2025-09-07",
             "credits": 209300
            },
            {
             "date": "2025-09-06",
             "credits": 226560
            },
            {
             "date": "2025-09-05",
             "credits": 242216
            },
            {
             "date": "2025-09-04",
             "credits": 228813
            }
           ],
           "total": 6047262
          },
          "monthly": {
           "dates": [
            {
             "date": "2025-10",
             "credits": 425160
            },
            {
             "date": "2025-09",
             "credits": 6259378
            },
            {
             "date": "2025-08",
             "credits": 2975389
            }
           ]
          }
         },
         "elapsed_ms": 1
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    }
   }
  },
  "/asn-info": {
   "post": {
    "operationId": "asn_info",
    "tags": [
     "ASN Info API"
    ],
    "summary": "ASN Info API",
    "description": "Get details about an Autonomous System Number (ASN): organization, country, abuse contacts, allocation date, and the announced IPv4 and IPv6 prefixes.\n\nConsumes 1 credit per successful request (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/asn-info-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/asn-info-api/",
     "description": "ASN Info API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "asn": {
           "type": "string",
           "description": "Autonomous System Number (ASN) submitted, e.g. AS14061."
          },
          "asname": {
           "type": "string",
           "description": "Name assigned to the autonomous system."
          },
          "status": {
           "type": "string",
           "description": "Registration status of the ASN, e.g. active."
          },
          "org": {
           "type": "string",
           "description": "Organization that owns the ASN."
          },
          "country_code": {
           "type": "string",
           "description": "Country code (e.g. US) where the ASN is registered."
          },
          "created": {
           "type": "string",
           "description": "Date the ASN was registered, format is Y-m-d."
          },
          "days_since_created": {
           "type": "integer",
           "description": "ASN age shown in number of days."
          },
          "months_since_created": {
           "type": "integer",
           "description": "ASN age shown in number of months."
          },
          "years_since_created": {
           "type": "integer",
           "description": "ASN age shown in number of years."
          },
          "updated": {
           "type": "string",
           "description": "Date the ASN record was last updated, format is Y-m-d."
          },
          "days_since_updated": {
           "type": "integer",
           "description": "Time since the last record update shown in number of days."
          },
          "months_since_updated": {
           "type": "integer",
           "description": "Time since the last record update shown in number of months."
          },
          "years_since_updated": {
           "type": "integer",
           "description": "Time since the last record update shown in number of years."
          },
          "address": {
           "type": "string",
           "description": "Registered postal address of the organization."
          },
          "abuse_email": {
           "type": "string",
           "description": "Email address to report abuse related to the ASN."
          },
          "domain": {
           "type": "string",
           "description": "Website domain of the organization."
          },
          "type": {
           "type": "string",
           "description": "Type of the ASN, e.g. hosting, isp, business."
          },
          "routes": {
           "type": "object",
           "properties": {
            "ipv4": {
             "type": "object",
             "properties": {
              "total_prefixes": {
               "type": "integer",
               "description": "Number of IPv4 prefixes announced by the ASN."
              },
              "total_ips": {
               "type": "integer",
               "description": "Total number of IPv4 addresses announced by the ASN."
              },
              "prefixes": {
               "type": "array",
               "items": {
                "type": "string"
               },
               "description": "List of IPv4 prefixes (CIDR notation) announced by the ASN."
              }
             }
            },
            "ipv6": {
             "type": "object",
             "properties": {
              "total_prefixes": {
               "type": "integer",
               "description": "Number of IPv6 prefixes announced by the ASN."
              },
              "total_ips": {
               "type": "string",
               "description": "Total number of IPv6 addresses announced by the ASN (returned as string due to size)."
              },
              "prefixes": {
               "type": "array",
               "items": {
                "type": "string"
               },
               "description": "List of IPv6 prefixes (CIDR notation) announced by the ASN."
              }
             }
            }
           }
          },
          "rir": {
           "type": "string",
           "description": "Regional Internet Registry that assigned the ASN, e.g. ARIN, RIPE."
          }
         }
        },
        "example": {
         "asn": "AS14061",
         "asname": "DIGITALOCEAN-ASN",
         "status": "active",
         "org": "DigitalOcean, LLC",
         "country_code": "US",
         "created": "2012-09-25",
         "days_since_created": 4754,
         "months_since_created": 156,
         "years_since_created": 13,
         "updated": "2025-03-04",
         "days_since_updated": 211,
         "months_since_updated": 6,
         "years_since_updated": 0,
         "address": "105 Edgeview Drive, Suite 425, Broomfield, CO, 80021, United States",
         "abuse_email": "abuse@digitalocean.com",
         "domain": "digitalocean.com",
         "type": "hosting",
         "routes": {
          "ipv4": {
           "total_prefixes": 821,
           "total_ips": 3021312,
           "prefixes": [
            "103.253.144.0/22",
            "104.131.0.0/18",
            "104.131.128.0/20"
           ]
          },
          "ipv6": {
           "total_prefixes": 17,
           "total_ips": "328827822935179135520079872",
           "prefixes": [
            "2400:6180:100::/40",
            "2400:6180:10::/48",
            "2400:6180::/48"
           ]
          }
         },
         "rir": "ARIN"
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 1,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "asn": {
          "type": "string",
          "description": "ASN to submit, e.g. AS14061."
         }
        },
        "required": [
         "asn"
        ]
       },
       "example": {
        "asn": "AS14061"
       }
      }
     }
    }
   }
  },
  "/bimi-validator": {
   "post": {
    "operationId": "bimi_validator",
    "tags": [
     "BIMI Validator API"
    ],
    "summary": "BIMI Validator API",
    "description": "Validate a domain's BIMI setup: the BIMI DNS record, the SVG logo (format, size and profile), and the VMC certificate including issuer, validity and trademark details.\n\nConsumes 5 credits per successful request (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/bimi-validator-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/bimi-validator-api/",
     "description": "BIMI Validator API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "selector": {
           "type": "string",
           "description": "The BIMI selector specified or the default selector."
          },
          "host": {
           "type": "string",
           "description": "Host submitted for the BIMI check."
          },
          "bimi_host": {
           "type": "string",
           "description": "The full BIMI host name (selector._bimi.domain)."
          },
          "cname_target": {
           "type": "string",
           "description": "The CNAME target for the BIMI record, if any."
          },
          "has_bimi_record": {
           "type": "boolean",
           "description": "Returns true if a BIMI record is found."
          },
          "bimi_record": {
           "type": "string",
           "description": "BIMI record, e.g. v=BIMI1; l=https://...logo.svg; a=https://...cert.pem."
          },
          "bimi_records_count": {
           "type": "integer",
           "description": "Returns the number of BIMI records found for the same selector (only one is expected)."
          },
          "version": {
           "type": "string",
           "description": "Returns the BIMI version specified in the v= tag (e.g. BIMI1)."
          },
          "svg_logo": {
           "type": "object",
           "properties": {
            "url": {
             "type": "string",
             "description": "URL of the SVG logo specified in the l= tag."
            },
            "status_code": {
             "type": "integer",
             "description": "HTTP status code returned when fetching the SVG logo."
            },
            "valid": {
             "type": "boolean",
             "description": "Returns true if the SVG logo is valid for BIMI."
            },
            "file_size_bytes": {
             "type": "integer",
             "description": "File size of the SVG logo in bytes."
            },
            "version": {
             "type": "string",
             "description": "SVG version declared in the logo file."
            },
            "baseprofile": {
             "type": "string",
             "description": "SVG base profile declared in the logo file, expected to be tiny-ps."
            },
            "title": {
             "type": "string",
             "description": "Title element found in the SVG logo."
            }
           }
          },
          "vmc_certificate": {
           "type": "object",
           "properties": {
            "url": {
             "type": "string",
             "description": "URL of the VMC certificate specified in the a= tag."
            },
            "status_code": {
             "type": "integer",
             "description": "HTTP status code returned when fetching the VMC certificate."
            },
            "expired": {
             "type": "boolean",
             "description": "Returns true if the VMC certificate is expired."
            },
            "valid": {
             "type": "boolean",
             "description": "Returns true if the VMC certificate is valid."
            },
            "issued_to": {
             "type": "object",
             "properties": {
              "common_name": {
               "type": "string",
               "description": "Common name of the entity the certificate was issued to."
              },
              "alternative_names": {
               "type": "array",
               "items": {
                "type": "string"
               },
               "description": "Alternative names (domains) covered by the certificate."
              },
              "organization": {
               "type": "string",
               "description": "Organization the certificate was issued to."
              },
              "country": {
               "type": "string",
               "description": "Country of the organization the certificate was issued to."
              },
              "state": {
               "type": "string",
               "description": "State of the organization the certificate was issued to."
              },
              "location": {
               "type": "string",
               "description": "City of the organization the certificate was issued to."
              }
             }
            },
            "issuer": {
             "type": "object",
             "properties": {
              "common_name": {
               "type": "string",
               "description": "Common name of the certificate authority that issued the VMC."
              },
              "organization": {
               "type": "string",
               "description": "Organization of the certificate authority that issued the VMC."
              },
              "country": {
               "type": "string",
               "description": "Country of the certificate authority."
              },
              "state": {
               "type": "string",
               "description": "State of the certificate authority."
              },
              "location": {
               "type": "string",
               "description": "City of the certificate authority."
              }
             }
            },
            "signature": {
             "type": "object",
             "properties": {
              "serial": {
               "type": "string",
               "description": "Serial number of the certificate."
              },
              "serial_hex": {
               "type": "string",
               "description": "Serial number of the certificate, in hexadecimal (same format as openssl x509 -serial)."
              },
              "type": {
               "type": "string",
               "description": "Signature algorithm of the certificate, e.g. SHA256-RSA."
              }
             }
            },
            "validity": {
             "type": "object",
             "properties": {
              "days_left": {
               "type": "integer",
               "description": "Number of days left before the certificate expires."
              },
              "valid_from_timestamp": {
               "type": "integer",
               "description": "Unix timestamp of when the certificate validity starts."
              },
              "valid_to_timestamp": {
               "type": "integer",
               "description": "Unix timestamp of when the certificate validity ends."
              },
              "valid_from": {
               "type": "string",
               "description": "Date and time of when the certificate validity starts."
              },
              "valid_to": {
               "type": "string",
               "description": "Date and time of when the certificate validity ends."
              }
             }
            },
            "trademark": {
             "type": "object",
             "properties": {
              "found": {
               "type": "boolean",
               "description": "Returns true if trademark details are found in the certificate."
              },
              "country": {
               "type": "string",
               "description": "Country where the logo trademark is registered."
              },
              "id": {
               "type": "string",
               "description": "Registration ID of the logo trademark."
              }
             }
            }
           }
          },
          "issues_found": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "code": {
              "type": "string",
              "description": "Machine-readable issue code, e.g. BIMI_NOT_FOUND."
             },
             "type": {
              "type": "string",
              "description": "Issue severity: error, warning or information."
             },
             "message": {
              "type": "string",
              "description": "Human-readable description of the issue, e.g. BIMI record not found."
             }
            }
           },
           "description": "Array of issues found with the BIMI record, SVG logo or VMC certificate, the \"code\" field can be BIMI_VIA_CNAME, BIMI_NOT_FOUND, DUPLICATE_BIMI_RECORDS, V_TAG_NOT_FOUND, V_TAG_NOT_FIRST, MISSING_L_TAG, MISSING_A_TAG, INVALID_L_TAG_CHARS, INVALID_A_TAG_CHARS, INVALID_SVG_FILE, INVALID_PEM_CERT_FILE, PEM_CERT_FILE_HAS_NO_TRADEMARK, PEM_CERT_DOMAIN_MISMATCH, VMC_LOGO_MISMATCH, VMC_LOGOTYPE_EXTENSION_NOT_FOUND, INVALID_BIMI_TAG_FOUND, UNKNOWN_BIMI_TAG_FOUND."
          },
          "valid": {
           "type": "boolean",
           "description": "Returns true if the BIMI record is valid."
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "selector": "default",
         "host": "paypal.com",
         "bimi_host": "default._bimi.paypal.com",
         "cname_target": "",
         "has_bimi_record": true,
         "bimi_record": "v=BIMI1; l=https://www.paypalobjects.com/marketing/web/logos/paypal_ppe.svg; a=https://www.paypalobjects.com/marketing/web/logos/paypal_ppe.pem",
         "bimi_records_count": 1,
         "version": "BIMI1",
         "svg_logo": {
          "url": "https://www.paypalobjects.com/marketing/web/logos/paypal_ppe.svg",
          "status_code": 200,
          "valid": true,
          "file_size_bytes": 1098,
          "version": "1.2",
          "baseprofile": "tiny-ps",
          "title": "PayPal"
         },
         "vmc_certificate": {
          "url": "https://www.paypalobjects.com/marketing/web/logos/paypal_ppe.pem",
          "status_code": 200,
          "expired": false,
          "valid": true,
          "issued_to": {
           "common_name": "PayPal, Inc.",
           "alternative_names": [
            "paypal.com"
           ],
           "organization": "PayPal, Inc.",
           "country": "US",
           "state": "California",
           "location": "San Jose"
          },
          "issuer": {
           "common_name": "DigiCert Verified Mark RSA4096 SHA256 2021 CA1",
           "organization": "DigiCert, Inc.",
           "country": "US",
           "state": "",
           "location": ""
          },
          "signature": {
           "serial": "6128685724469353749739451239056945761",
           "serial_hex": "049C5789183F8E64D6AE2F39FFEA3261",
           "type": "SHA256-RSA"
          },
          "validity": {
           "days_left": 198,
           "valid_from_timestamp": 1725840000,
           "valid_to_timestamp": 1757375999,
           "valid_from": "Mon, 09 Sep 2024 00:00:00 UTC",
           "valid_to": "Mon, 08 Sep 2025 23:59:59 UTC"
          },
          "trademark": {
           "found": true,
           "country": "US",
           "id": "6275156"
          }
         },
         "issues_found": [],
         "valid": true,
         "elapsed_ms": 92
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 5,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "host": {
          "type": "string",
          "description": "Host to submit, e.g. google.com."
         },
         "selector": {
          "type": "string",
          "description": "BIMI selector to check. If omitted, the default selector is used.",
          "default": "default"
         }
        },
        "required": [
         "host"
        ]
       },
       "example": {
        "host": "paypal.com"
       }
      }
     }
    }
   }
  },
  "/dkim-validator": {
   "post": {
    "operationId": "dkim_validator",
    "tags": [
     "DKIM Validator API"
    ],
    "summary": "DKIM Validator API",
    "description": "Validate the DKIM record of a domain and selector: check that the public key record exists, is correctly formatted, and detect common configuration issues.\n\nConsumes 5 credits per successful request (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/dkim-validator-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/dkim-validator-api/",
     "description": "DKIM Validator API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "selector": {
           "type": "string",
           "description": "The DKIM selector specified or automatically discovered."
          },
          "host": {
           "type": "string",
           "description": "Host submitted for the DKIM check."
          },
          "dkim_host": {
           "type": "string",
           "description": "The full DKIM host name (selector._domainkey.domain)."
          },
          "cname_target": {
           "type": "string",
           "description": "The CNAME target for the DKIM record."
          },
          "has_dkim_record": {
           "type": "boolean",
           "description": "Returns true if DKIM record is found."
          },
          "dkim_record": {
           "type": "string",
           "description": "DKIM record, e.g. v=DKIM1; k=rsa; t=s; p=MIGfMA0GCSqGSIb..."
          },
          "dkim_records_count": {
           "type": "integer",
           "description": "Returns the number of DKIM records found for the same selector (only one is expected)."
          },
          "version": {
           "type": "string",
           "description": "Returns the DKIM version specified in the v= tag, defaulting to DKIM1 when absent."
          },
          "key_type": {
           "type": "string",
           "description": "Returns the DKIM key type from the k= tag (e.g. rsa, ed25519)."
          },
          "issues_found": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "code": {
              "type": "string",
              "description": "Machine-readable issue code, e.g. WEAK_PUBLIC_KEY_BITS."
             },
             "type": {
              "type": "string",
              "description": "Issue severity: error, warning or information."
             },
             "message": {
              "type": "string",
              "description": "Human-readable description of the issue."
             }
            }
           },
           "description": "Array of issues found, the \"code\" field can be DKIM_NOT_FOUND, DUPLICATE_DKIM_RECORDS, V_TAG_NOT_FOUND, V_TAG_NOT_FIRST, MISSING_P_TAG, NO_DKIM_TAGS_FOUND, INVALID_DKIM_TAG_FOUND, UNKNOWN_DKIM_TAG_FOUND, INVALID_H_TAG_CHARS, INVALID_K_TAG_CHARS, PUBLIC_KEY_REVOKED, INVALID_P_TAG_CHARS, PUBLIC_KEY_NOT_VALID, WEAK_PUBLIC_KEY_BITS, INVALID_S_TAG_CHARS, INVALID_T_TAG_CHARS."
          },
          "valid": {
           "type": "boolean",
           "description": "Returns true if the DKIM record is valid."
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "selector": "s2",
         "host": "stripe.com",
         "dkim_host": "s2._domainkey.stripe.com",
         "cname_target": "s2.domainkey.u2680008.wl009.sendgrid.net",
         "has_dkim_record": true,
         "dkim_record": "k=rsa; t=s; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDR/9Km49dOTJZfnn/mL4N3Pv6RDxVq7VmN+/fYUcy3LUv2Vczz7TQFe071srBQWAOCpEQLAXJbRJYp+ltcW8IGECRGYLabp6un7lWDO4TVTXNwe+YKgCwSnNv8fREDXa44KU2zYp3rkaAmm2EaXrZLCupKQ8hR3ZcIJqzmdl1iUwIDAQAB",
         "dkim_records_count": 1,
         "version": "DKIM1",
         "key_type": "rsa",
         "issues_found": [
          {
           "code": "V_TAG_NOT_FOUND",
           "type": "warning",
           "message": "The v tag is missing"
          },
          {
           "code": "WEAK_PUBLIC_KEY_BITS",
           "type": "warning",
           "message": "Public key uses weak 1024 bits"
          }
         ],
         "valid": true,
         "elapsed_ms": 196
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 5,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "host": {
          "type": "string",
          "description": "Host to submit, e.g. google.com."
         },
         "selector": {
          "type": "string",
          "description": "DKIM selector to check. If omitted, the API tries 500+ known selectors automatically.",
          "default": "auto"
         }
        },
        "required": [
         "host"
        ]
       },
       "example": {
        "host": "stripe.com"
       }
      }
     }
    }
   }
  },
  "/dmarc-validator": {
   "post": {
    "operationId": "dmarc_validator",
    "tags": [
     "DMARC Validator API"
    ],
    "summary": "DMARC Validator API",
    "description": "Validate the DMARC record of a domain: check that the record exists, parse its policy tags, and detect common configuration issues, with detailed explanations.\n\nConsumes 5 credits per successful request (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/dmarc-validator-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/dmarc-validator-api/",
     "description": "DMARC Validator API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "host": {
           "type": "string",
           "description": "Host submitted for the DMARC check."
          },
          "dmarc_host": {
           "type": "string",
           "description": "The full DMARC host name (_dmarc.domain)."
          },
          "cname_target": {
           "type": "string",
           "description": "The CNAME target for the DMARC record."
          },
          "has_dmarc_record": {
           "type": "boolean",
           "description": "Returns true if DMARC record is found."
          },
          "dmarc_record": {
           "type": "string",
           "description": "DMARC record, e.g. v=DMARC1; p=reject; rua=mailto:d@rua.agari.com; ruf=mailto:d@ruf.agari.com."
          },
          "dmarc_records_count": {
           "type": "integer",
           "description": "Returns the number of DMARC records found (there should be only one)."
          },
          "domain_policy": {
           "type": "string",
           "description": "Returns the DMARC domain policy (from the p= tag), which can be reject, quarantine, or none."
          },
          "subdomain_policy": {
           "type": "string",
           "description": "Returns the DMARC subdomain policy (from the sp= tag), which can be reject, quarantine, or none."
          },
          "dmarc_enforced": {
           "type": "boolean",
           "description": "Returns true if the DMARC domain policy is set to reject or quarantine."
          },
          "rua_emails": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "email": {
              "type": "string",
              "description": "Email address found in the rua tag (aggregate reports recipient)."
             },
             "domain": {
              "type": "string",
              "description": "Domain of the rua email address."
             },
             "has_mx_records": {
              "type": "boolean",
              "description": "Returns true if the email domain has MX records configured to receive reports."
             }
            }
           },
           "description": "Returns an array containing details for each email address specified in the rua= tag."
          },
          "ruf_emails": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "email": {
              "type": "string",
              "description": "Email address found in the ruf tag (forensic reports recipient)."
             },
             "domain": {
              "type": "string",
              "description": "Domain of the ruf email address."
             },
             "has_mx_records": {
              "type": "boolean",
              "description": "Returns true if the email domain has MX records configured to receive reports."
             }
            }
           },
           "description": "Returns an array containing details for each email address specified in the ruf= tag."
          },
          "version": {
           "type": "string",
           "description": "Returns the DMARC version specified in the v= tag, defaulting to DMARC1 when absent."
          },
          "issues_found": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "code": {
              "type": "string",
              "description": "Machine-readable issue code, e.g. V_TAG_NOT_FOUND."
             },
             "type": {
              "type": "string",
              "description": "Issue severity: error, warning or information."
             },
             "message": {
              "type": "string",
              "description": "Human-readable description of the issue."
             }
            }
           },
           "description": "Array of issues found, the \"code\" field can be DMARC_NOT_FOUND, DUPLICATE_DMARC_RECORDS, V_TAG_NOT_FOUND, V_TAG_NOT_FIRST, MISSING_P_TAG, NO_DMARC_TAGS_FOUND, INVALID_DMARC_TAG_FOUND, UNKNOWN_DMARC_TAG_FOUND, INVALID_P_TAG_CHARS, P_TAG_IS_NONE, INVALID_ADKIM_TAG_CHARS, INVALID_ASPF_TAG_CHARS, INVALID_SP_TAG_CHARS, INVALID_FO_TAG_CHARS, INVALID_RUA_TAG_CHARS, RUA_TAG_INVALID_EMAIL, RUA_TAG_EMAIL_NO_MX, INVALID_RUF_TAG_CHARS, RUF_TAG_INVALID_EMAIL, RUF_TAG_EMAIL_NO_MX, INVALID_RF_TAG_CHARS, INVALID_PCT_TAG_CHARS, INVALID_RI_TAG_CHARS."
          },
          "valid": {
           "type": "boolean",
           "description": "Returns true if the DMARC record is valid."
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "host": "paypal.com",
         "dmarc_host": "_dmarc.paypal.com",
         "cname_target": "",
         "has_dmarc_record": true,
         "dmarc_record": "p=reject; rua=mailto:d@rua.agari.com; ruf=mailto:d@ruf.agari.com",
         "dmarc_records_count": 1,
         "domain_policy": "reject",
         "subdomain_policy": "",
         "dmarc_enforced": true,
         "rua_emails": [
          {
           "email": "d@rua.agari.com",
           "domain": "rua.agari.com",
           "has_mx_records": true
          }
         ],
         "ruf_emails": [
          {
           "email": "d@ruf.agari.com",
           "domain": "ruf.agari.com",
           "has_mx_records": true
          }
         ],
         "version": "DMARC1",
         "issues_found": [
          {
           "code": "V_TAG_NOT_FOUND",
           "type": "warning",
           "message": "The v tag is missing"
          }
         ],
         "valid": true,
         "elapsed_ms": 78
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 5,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "host": {
          "type": "string",
          "description": "Host to submit, e.g. google.com."
         }
        },
        "required": [
         "host"
        ]
       },
       "example": {
        "host": "paypal.com"
       }
      }
     }
    }
   }
  },
  "/dns-lookup": {
   "post": {
    "operationId": "dns_lookup",
    "tags": [
     "DNS Lookup API"
    ],
    "summary": "DNS Lookup API",
    "description": "Resolve DNS records for any host: A, AAAA, MX, NS, TXT, SOA, and modern types like DMARC, BIMI, MTA-STS, TLS-RPT, HTTPS, TLSA, CAA, DNSSEC records and more.\n\nConsumes 1 credit per successful request (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/dns-lookup-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/dns-lookup-api/",
     "description": "DNS Lookup API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "host": {
           "type": "string",
           "description": "Host submitted for the DNS lookup."
          },
          "records": {
           "type": "object",
           "properties": {
            "a": {
             "type": "array",
             "items": {
              "type": "object",
              "properties": {
               "target": {
                "type": "string",
                "description": "IPv4 address the A record points to."
               },
               "ttl": {
                "type": "integer",
                "description": "Time-to-live (TTL) of the record, in seconds."
               }
              }
             },
             "description": "A records; each item has target (IPv4 address) and ttl."
            },
            "aaaa": {
             "type": "array",
             "items": {
              "type": "object",
              "properties": {
               "target": {
                "type": "string",
                "description": "IPv6 address the AAAA record points to."
               },
               "ttl": {
                "type": "integer",
                "description": "Time-to-live (TTL) of the record, in seconds."
               }
              }
             },
             "description": "AAAA records; each item has target (IPv6 address) and ttl."
            },
            "caa": {
             "type": "array",
             "items": {
              "type": "object",
              "properties": {
               "flag": {
                "type": "integer",
                "description": "CAA record flag; 0 by default, 128 marks the record as critical."
               },
               "tag": {
                "type": "string",
                "description": "CAA property tag, e.g. issue, issuewild or iodef."
               },
               "ttl": {
                "type": "integer",
                "description": "Time-to-live (TTL) of the record, in seconds."
               },
               "value": {
                "type": "string",
                "description": "CAA property value, e.g. the certificate authority allowed to issue certificates."
               }
              }
             },
             "description": "CAA records; each item has flag, tag (e.g. issue, iodef), value and ttl."
            },
            "dmarc": {
             "type": "array",
             "items": {
              "type": "object",
              "properties": {
               "target": {
                "type": "string",
                "description": "DMARC record value."
               },
               "ttl": {
                "type": "integer",
                "description": "Time-to-live (TTL) of the record, in seconds."
               }
              }
             },
             "description": "DMARC records found on _dmarc subdomain; each item has target (record value) and ttl."
            },
            "bimi": {
             "type": "array",
             "items": {
              "type": "object",
              "properties": {
               "target": {
                "type": "string",
                "description": "BIMI record value."
               },
               "ttl": {
                "type": "integer",
                "description": "Time-to-live (TTL) of the record, in seconds."
               }
              }
             },
             "description": "BIMI records found on default._bimi subdomain; each item has target (record value) and ttl."
            },
            "acme": {
             "type": "array",
             "items": {
              "type": "object",
              "properties": {
               "target": {
                "type": "string",
                "description": "ACME challenge token value."
               },
               "ttl": {
                "type": "integer",
                "description": "Time-to-live (TTL) of the record, in seconds."
               }
              }
             },
             "description": "ACME challenge records found on _acme-challenge subdomain; each item has target and ttl."
            },
            "mta-sts": {
             "type": "array",
             "items": {
              "type": "object",
              "properties": {
               "target": {
                "type": "string",
                "description": "MTA-STS record value."
               },
               "ttl": {
                "type": "integer",
                "description": "Time-to-live (TTL) of the record, in seconds."
               }
              }
             },
             "description": "MTA-STS records found on _mta-sts subdomain; each item has target and ttl."
            },
            "tls-rpt": {
             "type": "array",
             "items": {
              "type": "object",
              "properties": {
               "target": {
                "type": "string",
                "description": "TLS-RPT record value."
               },
               "ttl": {
                "type": "integer",
                "description": "Time-to-live (TTL) of the record, in seconds."
               }
              }
             },
             "description": "TLS-RPT records found on _smtp._tls subdomain; each item has target and ttl."
            },
            "https": {
             "type": "array",
             "items": {
              "type": "object",
              "properties": {
               "params": {
                "type": "string",
                "description": "HTTPS record SvcParams, e.g. the alpn values h2,h3."
               },
               "priority": {
                "type": "integer",
                "description": "HTTPS record priority; 0 indicates alias mode."
               },
               "target": {
                "type": "string",
                "description": "HTTPS record target name; a dot (.) refers to the record owner itself."
               },
               "ttl": {
                "type": "integer",
                "description": "Time-to-live (TTL) of the record, in seconds."
               }
              }
             },
             "description": "HTTPS records; each item has target, params (e.g. h2,h3), priority and ttl."
            },
            "tlsa": {
             "type": "array",
             "items": {
              "type": "object",
              "properties": {
               "certificate": {
                "type": "string",
                "description": "Certificate association data (hash of the certificate or public key)."
               },
               "matching_type": {
                "type": "integer",
                "description": "TLSA matching type: 0 (exact match), 1 (SHA-256) or 2 (SHA-512)."
               },
               "selector": {
                "type": "integer",
                "description": "TLSA selector: 0 (full certificate) or 1 (public key)."
               },
               "ttl": {
                "type": "integer",
                "description": "Time-to-live (TTL) of the record, in seconds."
               },
               "usage": {
                "type": "integer",
                "description": "TLSA certificate usage, from 0 to 3 (e.g. 3 = domain-issued certificate)."
               }
              }
             },
             "description": "TLSA records; each item has certificate, usage, selector, matching_type and ttl."
            },
            "mx": {
             "type": "array",
             "items": {
              "type": "object",
              "properties": {
               "pref": {
                "type": "integer",
                "description": "Preference of the mail server; lower values are tried first."
               },
               "target": {
                "type": "string",
                "description": "Mail server hostname."
               },
               "ttl": {
                "type": "integer",
                "description": "Time-to-live (TTL) of the record, in seconds."
               }
              }
             },
             "description": "MX records; each item has target (mail server), pref (preference) and ttl."
            },
            "ns": {
             "type": "array",
             "items": {
              "type": "object",
              "properties": {
               "target": {
                "type": "string",
                "description": "Name server hostname."
               },
               "ttl": {
                "type": "integer",
                "description": "Time-to-live (TTL) of the record, in seconds."
               }
              }
             },
             "description": "NS records; each item has target (name server) and ttl."
            },
            "soa": {
             "type": "array",
             "items": {
              "type": "object",
              "properties": {
               "expire": {
                "type": "integer",
                "description": "Seconds after which secondary name servers stop answering if the primary is unreachable."
               },
               "minttl": {
                "type": "integer",
                "description": "Minimum TTL, used for negative caching, in seconds."
               },
               "mname": {
                "type": "string",
                "description": "Primary name server for the zone."
               },
               "refresh": {
                "type": "integer",
                "description": "Seconds between zone refresh checks by secondary name servers."
               },
               "retry": {
                "type": "integer",
                "description": "Seconds before a failed zone refresh is retried."
               },
               "rname": {
                "type": "string",
                "description": "Email address of the zone administrator."
               },
               "serial": {
                "type": "integer",
                "description": "Serial number of the zone; increases on every zone update."
               },
               "ttl": {
                "type": "integer",
                "description": "Time-to-live (TTL) of the record, in seconds."
               }
              }
             },
             "description": "SOA records; each item has mname, rname, serial, refresh, retry, expire, minttl and ttl."
            },
            "srv": {
             "type": "array",
             "items": {
              "type": "object",
              "properties": {
               "port": {
                "type": "integer",
                "description": "Port where the service is available."
               },
               "priority": {
                "type": "integer",
                "description": "Priority of the target host; lower values are tried first."
               },
               "target": {
                "type": "string",
                "description": "Hostname providing the service."
               },
               "ttl": {
                "type": "integer",
                "description": "Time-to-live (TTL) of the record, in seconds."
               },
               "weight": {
                "type": "integer",
                "description": "Relative weight for records with the same priority."
               }
              }
             },
             "description": "SRV records; each item has target, port, priority, weight and ttl."
            },
            "txt": {
             "type": "array",
             "items": {
              "type": "object",
              "properties": {
               "target": {
                "type": "string",
                "description": "TXT record value."
               },
               "ttl": {
                "type": "integer",
                "description": "Time-to-live (TTL) of the record, in seconds."
               }
              }
             },
             "description": "TXT records; each item has target (record value) and ttl."
            },
            "dnskey": {
             "type": "array",
             "items": {
              "type": "object",
              "properties": {
               "algorithm": {
                "type": "integer",
                "description": "DNSSEC algorithm number, e.g. 13 (ECDSA P-256 with SHA-256) or 8 (RSA/SHA-256)."
               },
               "flags": {
                "type": "integer",
                "description": "DNSKEY flags: 256 for a Zone Signing Key (ZSK), 257 for a Key Signing Key (KSK)."
               },
               "protocol": {
                "type": "integer",
                "description": "DNSKEY protocol field, always 3."
               },
               "public_key": {
                "type": "string",
                "description": "Public key material, base64-encoded."
               }
              }
             },
             "description": "DNSKEY records; each item has flags, protocol, algorithm and public_key."
            },
            "ds": {
             "type": "array",
             "items": {
              "type": "object",
              "properties": {
               "algorithm": {
                "type": "integer",
                "description": "DNSSEC algorithm number of the referenced DNSKEY, e.g. 13."
               },
               "digest": {
                "type": "string",
                "description": "Digest of the referenced DNSKEY record, in hexadecimal."
               },
               "digest_type": {
                "type": "integer",
                "description": "Digest algorithm: 1 (SHA-1), 2 (SHA-256) or 4 (SHA-384)."
               },
               "key_tag": {
                "type": "integer",
                "description": "Key tag identifying the DNSKEY this DS record refers to."
               }
              }
             },
             "description": "DS records; each item has key_tag, algorithm, digest_type and digest."
            },
            "rrsig": {
             "type": "array",
             "items": {
              "type": "object",
              "properties": {
               "algorithm": {
                "type": "integer",
                "description": "DNSSEC algorithm number used for the signature, e.g. 13."
               },
               "expiration": {
                "type": "integer",
                "description": "Unix timestamp after which the signature is no longer valid."
               },
               "inception": {
                "type": "integer",
                "description": "Unix timestamp from which the signature is valid."
               },
               "key_tag": {
                "type": "integer",
                "description": "Key tag of the DNSKEY that produced the signature."
               },
               "labels": {
                "type": "integer",
                "description": "Number of labels in the original owner name (used for wildcard validation)."
               },
               "original_ttl": {
                "type": "integer",
                "description": "Original TTL of the signed record set, in seconds."
               },
               "signature": {
                "type": "string",
                "description": "Cryptographic signature, base64-encoded."
               },
               "signer_name": {
                "type": "string",
                "description": "Zone name that signed the record set, e.g. example.com."
               },
               "type_covered": {
                "type": "string",
                "description": "DNS record type covered by this signature, e.g. A, MX, SOA."
               }
              }
             },
             "description": "RRSIG records; each item has type_covered, algorithm, labels, original_ttl, expiration, inception, key_tag, signer_name and signature."
            }
           },
           "description": "DNS records found for the host, grouped by record type."
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "host": "example.com",
         "records": {
          "a": [
           {
            "target": "93.184.215.14",
            "ttl": 3380
           }
          ],
          "aaaa": [
           {
            "target": "2606:2800:21f:cb07:6820:80da:af6b:8b2c",
            "ttl": 3380
           }
          ],
          "caa": [
           {
            "flag": 0,
            "tag": "iodef",
            "ttl": 3600,
            "value": "mailto:caa-violations@stripe.com"
           },
           {
            "flag": 0,
            "tag": "issue",
            "ttl": 3600,
            "value": "amazon.com"
           },
           {
            "flag": 0,
            "tag": "issue",
            "ttl": 3600,
            "value": "digicert.com"
           },
           {
            "flag": 0,
            "tag": "issue",
            "ttl": 3600,
            "value": "visa.com"
           }
          ],
          "dmarc": [
           {
            "target": "v=DMARC1;p=reject;sp=reject;adkim=s;aspf=s",
            "ttl": 3390
           }
          ],
          "bimi": [
           {
            "target": "v=BIMI1; l=https://www.example.com/uploads/bimi.svg; a=https://www.example.com/uploads/bimi-cert.pem;",
            "ttl": 3390
           }
          ],
          "acme": [
           {
            "target": "TqufBc_OudO92bJuiVy_VChVELY6t9N990a41ofwkW4",
            "ttl": 300
           },
           {
            "target": "THfu-OTfch3gJMULczPtcIpNlyJ96D5aq6c2ZZ3xh70",
            "ttl": 300
           }
          ],
          "mta-sts": [
           {
            "target": "v=STSv1; id=20251202110430Z",
            "ttl": 290
           }
          ],
          "tls-rpt": [
           {
            "target": "v=TLSRPTv1; rua=mailto:tlsrpt@posteo.de",
            "ttl": 300
           }
          ],
          "https": [
           {
            "params": "h2,h3",
            "priority": 1,
            "target": ".",
            "ttl": 21600
           }
          ],
          "tlsa": [
           {
            "certificate": "b7273310126734f9de62f29eb1f21907bf4e02a0fa1c3feda4594098841139c9",
            "matching_type": 1,
            "selector": 1,
            "ttl": 900,
            "usage": 3
           },
           {
            "certificate": "5ce7c3caf94015db746880a8d937df5674cf539c426990682d5b84c3a3bfeca3",
            "matching_type": 1,
            "selector": 1,
            "ttl": 900,
            "usage": 3
           },
           {
            "certificate": "2cd895dcbc6c9d4e1a267d7d1d75ace8b4b051dff71c7a9fdf0fac1e46a9398f",
            "matching_type": 1,
            "selector": 1,
            "ttl": 900,
            "usage": 3
           },
           {
            "certificate": "604016df5069274948aa519ac9236b70fcf1b455867c97ab856022c8affcc6ea",
            "matching_type": 1,
            "selector": 1,
            "ttl": 900,
            "usage": 3
           },
           {
            "certificate": "8488d4c1d6a4194a0ba962f5f606725c1d2a6eef062743efdb949dbb313c9be9",
            "matching_type": 1,
            "selector": 1,
            "ttl": 900,
            "usage": 3
           }
          ],
          "mx": [
           {
            "pref": 10,
            "target": "alt1.gmail-smtp-in.l.google.com",
            "ttl": 2700
           },
           {
            "pref": 20,
            "target": "alt2.gmail-smtp-in.l.google.com",
            "ttl": 2700
           },
           {
            "pref": 30,
            "target": "alt3.gmail-smtp-in.l.google.com",
            "ttl": 2700
           },
           {
            "pref": 40,
            "target": "alt4.gmail-smtp-in.l.google.com",
            "ttl": 2700
           }
          ],
          "ns": [
           {
            "target": "b.iana-servers.net",
            "ttl": 86180
           },
           {
            "target": "a.iana-servers.net",
            "ttl": 86180
           }
          ],
          "soa": [
           {
            "expire": 1209600,
            "minttl": 3600,
            "mname": "ns.icann.org",
            "refresh": 7200,
            "retry": 3600,
            "rname": "noc@dns.icann.org",
            "serial": 2024081460,
            "ttl": 3380
           }
          ],
          "srv": [
           {
            "port": 5060,
            "priority": 50,
            "target": "ygg2.vp.vc",
            "ttl": 1800,
            "weight": 100
           },
           {
            "port": 5060,
            "priority": 10,
            "target": "ygg1.vp.vc",
            "ttl": 1800,
            "weight": 100
           }
          ],
          "txt": [
           {
            "target": "v=spf1 -all",
            "ttl": 86180
           },
           {
            "target": "wgyf8z8cgvm2qmxpnbnldrcltvk4xqfn",
            "ttl": 86180
           }
          ],
          "dnskey": [
           {
            "algorithm": 13,
            "flags": 256,
            "protocol": 3,
            "public_key": "t7/xPcfCnzUrxKawsmnR+SxQAJSSLABBt+y7eV2/BylpqG6vhGuJRVGSsHeuBt/VjC6IByqVMYGu1J9+/s1QbQ=="
           },
           {
            "algorithm": 13,
            "flags": 257,
            "protocol": 3,
            "public_key": "1NYmUeN/Ens1c5m8lmq5/SiqjpMK+dfGDY+3j8KkDgDSiDQev59JlxpQSIgRV723NGBrM5wyDtORZ20rSVkCqA=="
           }
          ],
          "ds": [
           {
            "algorithm": 13,
            "digest": "9778f2ff96889ebed549795deaa40a6113f1899af7ca8dd7947fddfeca9a190b",
            "digest_type": 2,
            "key_tag": 7037
           }
          ],
          "rrsig": [
           {
            "algorithm": 13,
            "expiration": 1790950700,
            "inception": 1788355413,
            "key_tag": 34374,
            "labels": 2,
            "original_ttl": 300,
            "signature": "wwIv4z1kEQbq5T81t7AydkBil0BaVA+agWJmaCbwXgSE69CYY/AoIgBQOFN3czf1Km9EovQqWFkT8kDoExZ3mw==",
            "signer_name": "example.com",
            "type_covered": "A"
           },
           {
            "algorithm": 13,
            "expiration": 1790932671,
            "inception": 1788339888,
            "key_tag": 34374,
            "labels": 2,
            "original_ttl": 3600,
            "signature": "xJjQH4pTz7ebffMdmkQ1n/IWIHROyh9ql3nNKeHOjPghuAzUiwZ4NDZzJquyEorRwstp6r/gmmYpEL+P2sUkEg==",
            "signer_name": "example.com",
            "type_covered": "MX"
           }
          ]
         },
         "elapsed_ms": 28
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 1,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "host": {
          "type": "string",
          "description": "Host to submit, e.g. google.com."
         },
         "dns_types": {
          "type": "string",
          "description": "DNS types, comma-separated with no spaces, such as: A,AAAA,MX,NS,TXT,SOA,DMARC,BIMI,MTA-STS,TLS-RPT,ACME,HTTPS,TLSA,CAA,SRV,DNSKEY,DS,RRSIG."
         }
        },
        "required": [
         "host",
         "dns_types"
        ]
       },
       "example": {
        "host": "example.com",
        "dns_types": "A,AAAA,MX,NS,TXT,SOA,DMARC,BIMI,MTA-STS,TLS-RPT,ACME,HTTPS,TLSA,CAA,SRV,DNSKEY,DS,RRSIG"
       }
      }
     }
    }
   }
  },
  "/dns-lookup/bulk": {
   "post": {
    "operationId": "dns_lookup_bulk",
    "tags": [
     "DNS Lookup API"
    ],
    "summary": "DNS Lookup API \u2014 Bulk domains request",
    "description": "You can also submit multiple domains in a single request on the /bulk endpoint. The required JSON field is hosts (plural), with comma-separated domains, instead of the host field used for the single-domain request.\n\nEach submitted item counts as a separate request and consumes 1 credit (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/dns-lookup-api/#bulk-domains-request",
    "externalDocs": {
     "url": "https://docs.apivoid.com/dns-lookup-api/#bulk-domains-request",
     "description": "DNS Lookup API reference (Bulk domains request)"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "entries": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "host": {
              "type": "string",
              "description": "Host submitted for the DNS lookup."
             },
             "records": {
              "type": "object",
              "properties": {
               "a": {
                "type": "array",
                "items": {
                 "type": "object",
                 "properties": {
                  "target": {
                   "type": "string",
                   "description": "IPv4 address the A record points to."
                  },
                  "ttl": {
                   "type": "integer",
                   "description": "Time-to-live (TTL) of the record, in seconds."
                  }
                 }
                },
                "description": "A records; each item has target (IPv4 address) and ttl."
               },
               "ns": {
                "type": "array",
                "items": {
                 "type": "object",
                 "properties": {
                  "target": {
                   "type": "string",
                   "description": "Name server hostname."
                  },
                  "ttl": {
                   "type": "integer",
                   "description": "Time-to-live (TTL) of the record, in seconds."
                  }
                 }
                },
                "description": "NS records; each item has target (name server) and ttl."
               }
              },
              "description": "DNS records found for the host, grouped by record type."
             }
            }
           }
          },
          "elapsed_ms": {
           "type": "integer"
          }
         }
        },
        "example": {
         "entries": [
          {
           "host": "google.com",
           "records": {
            "a": [
             {
              "target": "173.194.212.102",
              "ttl": 300
             },
             {
              "target": "173.194.212.138",
              "ttl": 300
             },
             {
              "target": "173.194.212.139",
              "ttl": 300
             },
             {
              "target": "173.194.212.100",
              "ttl": 300
             },
             {
              "target": "173.194.212.101",
              "ttl": 300
             },
             {
              "target": "173.194.212.113",
              "ttl": 300
             }
            ],
            "ns": [
             {
              "target": "ns1.google.com",
              "ttl": 86400
             },
             {
              "target": "ns3.google.com",
              "ttl": 86400
             },
             {
              "target": "ns4.google.com",
              "ttl": 86400
             },
             {
              "target": "ns2.google.com",
              "ttl": 86400
             }
            ]
           }
          },
          {
           "host": "stripe.com",
           "records": {
            "a": [
             {
              "target": "3.229.145.172",
              "ttl": 60
             },
             {
              "target": "54.162.8.126",
              "ttl": 60
             },
             {
              "target": "3.90.98.12",
              "ttl": 60
             }
            ],
            "ns": [
             {
              "target": "ns-1087.awsdns-07.org",
              "ttl": 43200
             },
             {
              "target": "ns-1882.awsdns-43.co.uk",
              "ttl": 43200
             },
             {
              "target": "ns-423.awsdns-52.com",
              "ttl": 43200
             },
             {
              "target": "ns-705.awsdns-24.net",
              "ttl": 43200
             }
            ]
           }
          },
          {
           "host": "msn.com",
           "records": {
            "a": [
             {
              "target": "204.79.197.219",
              "ttl": 3600
             }
            ],
            "ns": [
             {
              "target": "ns4-204.azure-dns.info",
              "ttl": 86400
             },
             {
              "target": "dns1.p08.nsone.net",
              "ttl": 86400
             },
             {
              "target": "dns2.p08.nsone.net",
              "ttl": 86400
             },
             {
              "target": "dns3.p08.nsone.net",
              "ttl": 86400
             },
             {
              "target": "dns4.p08.nsone.net",
              "ttl": 86400
             },
             {
              "target": "ns1-204.azure-dns.com",
              "ttl": 86400
             },
             {
              "target": "ns2-204.azure-dns.net",
              "ttl": 86400
             },
             {
              "target": "ns3-204.azure-dns.org",
              "ttl": 86400
             }
            ]
           }
          },
          {
           "host": "amazon.com",
           "records": {
            "a": [
             {
              "target": "205.251.242.103",
              "ttl": 900
             },
             {
              "target": "52.94.236.248",
              "ttl": 900
             },
             {
              "target": "54.239.28.85",
              "ttl": 900
             }
            ],
            "ns": [
             {
              "target": "ns1.amzndns.org",
              "ttl": 7200
             },
             {
              "target": "ns2.amzndns.co.uk",
              "ttl": 7200
             },
             {
              "target": "ns2.amzndns.com",
              "ttl": 7200
             },
             {
              "target": "ns2.amzndns.net",
              "ttl": 7200
             },
             {
              "target": "ns2.amzndns.org",
              "ttl": 7200
             },
             {
              "target": "ns1.amzndns.co.uk",
              "ttl": 7200
             },
             {
              "target": "ns1.amzndns.com",
              "ttl": 7200
             },
             {
              "target": "ns1.amzndns.net",
              "ttl": 7200
             }
            ]
           }
          },
          {
           "host": "yahoo.com",
           "records": {
            "a": [
             {
              "target": "98.137.11.163",
              "ttl": 1800
             },
             {
              "target": "98.137.11.164",
              "ttl": 1800
             },
             {
              "target": "74.6.143.26",
              "ttl": 1800
             },
             {
              "target": "74.6.143.25",
              "ttl": 1800
             },
             {
              "target": "74.6.231.20",
              "ttl": 1800
             },
             {
              "target": "74.6.231.21",
              "ttl": 1800
             }
            ],
            "ns": [
             {
              "target": "ns1.yahoo.com",
              "ttl": 86400
             },
             {
              "target": "ns5.yahoo.com",
              "ttl": 86400
             },
             {
              "target": "ns4.yahoo.com",
              "ttl": 86400
             },
             {
              "target": "ns2.yahoo.com",
              "ttl": 86400
             },
             {
              "target": "ns3.yahoo.com",
              "ttl": 86400
             }
            ]
           }
          }
         ],
         "elapsed_ms": 313
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 1,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "hosts": {
          "type": "string",
          "description": "Comma-separated list of hosts to resolve (no spaces), e.g. google.com,stripe.com. The maximum number of hosts per request depends on your plan."
         },
         "dns_types": {
          "type": "string",
          "description": "DNS types, comma-separated with no spaces, same values as the single-domain request."
         }
        },
        "required": [
         "hosts",
         "dns_types"
        ]
       },
       "example": {
        "hosts": "google.com,stripe.com,msn.com,amazon.com,yahoo.com",
        "dns_types": "A,NS"
       }
      }
     }
    }
   }
  },
  "/dns-propagation": {
   "post": {
    "operationId": "dns_propagation",
    "tags": [
     "DNS Propagation API"
    ],
    "summary": "DNS Propagation API",
    "description": "Check if DNS records of a domain have propagated globally by performing DNS lookups from multiple locations across America, Europe and Asia.\n\nConsumes 5 credits per successful request (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/dns-propagation-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/dns-propagation-api/",
     "description": "DNS Propagation API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "host": {
           "type": "string",
           "description": "Host submitted for the DNS propagation check."
          },
          "propagation": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "continent_code": {
              "type": "string",
              "description": "Continent code (e.g. NA) of the checking location."
             },
             "continent_name": {
              "type": "string",
              "description": "Continent name of the checking location."
             },
             "country_code": {
              "type": "string",
              "description": "Country code (e.g. US) of the checking location."
             },
             "country_name": {
              "type": "string",
              "description": "Country name of the checking location."
             },
             "city_name": {
              "type": "string",
              "description": "City name of the checking location."
             },
             "response": {
              "type": "array",
              "items": {
               "type": "object",
               "properties": {
                "dns_type": {
                 "type": "string",
                 "description": "DNS record type queried, e.g. A, AAAA, MX, NS, TXT, SRV, SOA."
                },
                "records": {
                 "type": "array",
                 "items": {
                  "oneOf": [
                   {
                    "type": "object",
                    "properties": {
                     "port": {
                      "type": "integer",
                      "description": "SRV record: port where the service is available."
                     },
                     "priority": {
                      "type": "integer",
                      "description": "SRV record: priority of the target host; lower values are tried first."
                     },
                     "target": {
                      "type": "string",
                      "description": "SRV record: hostname providing the service."
                     },
                     "weight": {
                      "type": "integer",
                      "description": "SRV record: relative weight for records with the same priority."
                     },
                     "expire": {
                      "type": "integer",
                      "description": "SOA record: seconds after which secondary name servers stop answering if the primary is unreachable."
                     },
                     "minttl": {
                      "type": "integer",
                      "description": "SOA record: minimum TTL, used for negative caching, in seconds."
                     },
                     "mname": {
                      "type": "string",
                      "description": "SOA record: primary name server for the zone."
                     },
                     "refresh": {
                      "type": "integer",
                      "description": "SOA record: seconds between zone refresh checks by secondary name servers."
                     },
                     "retry": {
                      "type": "integer",
                      "description": "SOA record: seconds before a failed zone refresh is retried."
                     },
                     "rname": {
                      "type": "string",
                      "description": "SOA record: email address of the zone administrator."
                     },
                     "serial": {
                      "type": "integer",
                      "description": "SOA record: serial number of the zone; increases on every zone update."
                     },
                     "flag": {
                      "type": "integer",
                      "description": "CAA record: flag, 0 by default, 128 marks the record as critical."
                     },
                     "tag": {
                      "type": "string",
                      "description": "CAA record: property tag, e.g. issue, issuewild or iodef."
                     },
                     "value": {
                      "type": "string",
                      "description": "CAA record: property value, e.g. the allowed certificate authority."
                     }
                    }
                   },
                   {
                    "type": "string"
                   }
                  ]
                 },
                 "description": "Records returned for this DNS type from this location. A, AAAA, MX, NS and TXT records are returned as plain strings (IP address, hostname or text value); SRV, SOA and CAA records are returned as objects with the fields below."
                }
               }
              },
              "description": "DNS responses seen from this location, one entry per DNS record type."
             }
            }
           },
           "description": "List of geographic locations with the DNS records seen from each location."
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "host": "example.com",
         "propagation": [
          {
           "continent_code": "NA",
           "continent_name": "North America",
           "country_code": "US",
           "country_name": "United States",
           "city_name": "New York City",
           "response": [
            {
             "dns_type": "A",
             "records": [
              "96.7.128.198",
              "23.215.0.136",
              "23.192.228.80",
              "23.192.228.84",
              "23.215.0.138",
              "96.7.128.175"
             ]
            },
            {
             "dns_type": "AAAA",
             "records": [
              "2600:1406:3a00:21::173e:2e66",
              "2600:1406:bc00:53::b81e:94c8",
              "2600:1406:3a00:21::173e:2e65",
              "2600:1406:bc00:53::b81e:94ce",
              "2600:1408:ec00:36::1736:7f24",
              "2600:1408:ec00:36::1736:7f31"
             ]
            },
            {
             "dns_type": "MX",
             "records": [
              "gmail-smtp-in.l.google.com",
              "alt1.gmail-smtp-in.l.google.com",
              "alt4.gmail-smtp-in.l.google.com",
              "alt2.gmail-smtp-in.l.google.com",
              "alt3.gmail-smtp-in.l.google.com"
             ]
            },
            {
             "dns_type": "NS",
             "records": [
              "a.iana-servers.net",
              "b.iana-servers.net"
             ]
            },
            {
             "dns_type": "TXT",
             "records": [
              "v=spf1 -all",
              "_k2n1y4vw3qtb4skdx9e7dxt97qrmmq9"
             ]
            },
            {
             "dns_type": "SRV",
             "records": [
              {
               "port": 5060,
               "priority": 10,
               "target": "ygg1.vp.vc",
               "weight": 100
              },
              {
               "port": 5060,
               "priority": 50,
               "target": "ygg2.vp.vc",
               "weight": 100
              }
             ]
            },
            {
             "dns_type": "SOA",
             "records": [
              {
               "expire": 1209600,
               "minttl": 3600,
               "mname": "ns.icann.org",
               "refresh": 7200,
               "retry": 3600,
               "rname": "noc@dns.icann.org",
               "serial": 2025011515
              }
             ]
            },
            {
             "dns_type": "CAA",
             "records": [
              {
               "flag": 0,
               "tag": "issue",
               "value": "visa.com"
              },
              {
               "flag": 0,
               "tag": "issue",
               "value": "digicert.com"
              },
              {
               "flag": 0,
               "tag": "issue",
               "value": "quovadisglobal.com"
              }
             ]
            }
           ]
          },
          {
           "continent_code": "NA",
           "continent_name": "North America",
           "country_code": "US",
           "country_name": "United States",
           "city_name": "San Francisco",
           "response": [
            {
             "dns_type": "A",
             "records": [
              "23.192.228.80",
              "23.192.228.84",
              "23.215.0.136",
              "23.215.0.138",
              "96.7.128.175",
              "96.7.128.198"
             ]
            },
            {
             "dns_type": "AAAA",
             "records": [
              "2600:1406:3a00:21::173e:2e66",
              "2600:1406:bc00:53::b81e:94c8",
              "2600:1406:bc00:53::b81e:94ce",
              "2600:1408:ec00:36::1736:7f24",
              "2600:1408:ec00:36::1736:7f31",
              "2600:1406:3a00:21::173e:2e65"
             ]
            },
            {
             "dns_type": "MX",
             "records": [
              "gmail-smtp-in.l.google.com",
              "alt1.gmail-smtp-in.l.google.com",
              "alt4.gmail-smtp-in.l.google.com",
              "alt2.gmail-smtp-in.l.google.com",
              "alt3.gmail-smtp-in.l.google.com"
             ]
            },
            {
             "dns_type": "NS",
             "records": [
              "b.iana-servers.net",
              "a.iana-servers.net"
             ]
            },
            {
             "dns_type": "TXT",
             "records": [
              "v=spf1 -all",
              "_k2n1y4vw3qtb4skdx9e7dxt97qrmmq9"
             ]
            },
            {
             "dns_type": "SRV",
             "records": [
              {
               "port": 5060,
               "priority": 10,
               "target": "ygg1.vp.vc",
               "weight": 100
              },
              {
               "port": 5060,
               "priority": 50,
               "target": "ygg2.vp.vc",
               "weight": 100
              }
             ]
            },
            {
             "dns_type": "SOA",
             "records": [
              {
               "expire": 1209600,
               "minttl": 3600,
               "mname": "ns.icann.org",
               "refresh": 7200,
               "retry": 3600,
               "rname": "noc@dns.icann.org",
               "serial": 2025011515
              }
             ]
            },
            {
             "dns_type": "CAA",
             "records": [
              {
               "flag": 0,
               "tag": "issue",
               "value": "visa.com"
              },
              {
               "flag": 0,
               "tag": "issue",
               "value": "digicert.com"
              },
              {
               "flag": 0,
               "tag": "issue",
               "value": "quovadisglobal.com"
              }
             ]
            }
           ]
          }
         ],
         "elapsed_ms": 155
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 5,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "host": {
          "type": "string",
          "description": "Host to submit, e.g. google.com."
         },
         "dns_types": {
          "type": "string",
          "description": "DNS types comma-separated (no spaces), such as: A,AAAA,MX,NS,TXT,SOA,SRV,CAA."
         }
        },
        "required": [
         "host",
         "dns_types"
        ]
       },
       "example": {
        "host": "example.com",
        "dns_types": "A,AAAA,MX,NS,TXT,SOA,SRV,CAA"
       }
      }
     }
    }
   }
  },
  "/dnssec-status": {
   "post": {
    "operationId": "dnssec_status",
    "tags": [
     "DNSSEC Status API"
    ],
    "summary": "DNSSEC Status API",
    "description": "Check if the DNS records of a host are fully DNSSEC-signed and validated, with the full DNS answer, RRSIG and DNSKEY records and CNAME redirects.\n\nConsumes 1 credit per successful request (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/dnssec-status-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/dnssec-status-api/",
     "description": "DNSSEC Status API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "host": {
           "type": "string",
           "description": "Host submitted for the DNSSEC check."
          },
          "dns_type": {
           "type": "string",
           "description": "DNS record type queried, e.g. A."
          },
          "dnssec_enabled": {
           "type": "boolean",
           "description": "Returns true if DNSSEC is enabled for the domain."
          },
          "dnssec_signed": {
           "type": "boolean",
           "description": "Returns true if the DNS response is signed with DNSSEC."
          },
          "rrsig_records": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "name": {
              "type": "string",
              "description": "Host name the record belongs to."
             },
             "type": {
              "type": "string",
              "description": "DNS record type, always RRSIG for this array."
             },
             "ttl": {
              "type": "integer",
              "description": "Time-to-live (TTL) of the record, in seconds."
             },
             "data": {
              "type": "string",
              "description": "Raw RRSIG record data (covered type, algorithm, expiration and signature)."
             }
            }
           },
           "description": "RRSIG records found; each item has name, type, ttl and data."
          },
          "dnskey_records": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "name": {
              "type": "string",
              "description": "Host name the record belongs to."
             },
             "type": {
              "type": "string",
              "description": "DNS record type, always DNSKEY for this array."
             },
             "ttl": {
              "type": "integer",
              "description": "Time-to-live (TTL) of the record, in seconds."
             },
             "data": {
              "type": "string",
              "description": "Raw DNSKEY record data (flags, protocol, algorithm and public key)."
             }
            }
           },
           "description": "DNSKEY records found; each item has name, type, ttl and data."
          },
          "ds_records": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "name": {
              "type": "string",
              "description": "Host name the record belongs to."
             },
             "type": {
              "type": "string",
              "description": "DNS record type, always DS for this array."
             },
             "ttl": {
              "type": "integer",
              "description": "Time-to-live (TTL) of the record, in seconds."
             },
             "data": {
              "type": "string",
              "description": "Raw DS record data (key tag, algorithm, digest type and digest)."
             }
            }
           },
           "description": "DS records found; each item has name, type, ttl and data."
          },
          "answer": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "name": {
              "type": "string",
              "description": "Host name the record belongs to."
             },
             "type": {
              "type": "string",
              "description": "DNS record type of the answer, e.g. A."
             },
             "ttl": {
              "type": "integer",
              "description": "Time-to-live (TTL) of the record, in seconds."
             },
             "data": {
              "type": "string",
              "description": "Record value, e.g. the IPv4 address for an A record."
             }
            }
           },
           "description": "DNS answer records for the queried type; each item has name, type, ttl and data."
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "host": "www.paypal.com",
         "dns_type": "A",
         "dnssec_enabled": true,
         "dnssec_signed": false,
         "rrsig_records": [
          {
           "name": "www.paypal.com",
           "type": "RRSIG",
           "ttl": 3417,
           "data": "CNAME 13 3 3600 1744928484 1742333294 paypal.com f5l9SOGnbgf8H23QOu+uunwLwMgxt7jAYHvuW8d9KNPnQf3FMX80Lxhqzdla6K/f6AOjIyCaBuk2RFKlrTe9iA=="
          },
          {
           "name": "www.glb.paypal.com",
           "type": "RRSIG",
           "ttl": 117,
           "data": "CNAME 13 4 300 1742907859 1742735059 glb.paypal.com 1Ue0053RPP/8+PbTQP1kGQ9QsSzhR8ecKgSvMSZiEyZ/S++1qso9ZFNRnkVMbxlOvUCrmS9szcuvWB1b4Px4Ow=="
          },
          {
           "name": "www.paypal.com",
           "type": "RRSIG",
           "ttl": 3600,
           "data": "CNAME 13 3 3600 1744928484 1742333294 paypal.com f5l9SOGnbgf8H23QOu+uunwLwMgxt7jAYHvuW8d9KNPnQf3FMX80Lxhqzdla6K/f6AOjIyCaBuk2RFKlrTe9iA=="
          },
          {
           "name": "www.glb.paypal.com",
           "type": "RRSIG",
           "ttl": 300,
           "data": "CNAME 13 4 300 1742908055 1742735255 glb.paypal.com UBLdB8tJpzF/WMeV370JjeNo2nDMeflysiKeI34GOC2Dw7g8HtbgMvc5FkfL/jmxglwcLrsnb1x7kFfmkBOReA=="
          },
          {
           "name": "www.paypal.com",
           "type": "RRSIG",
           "ttl": 3600,
           "data": "CNAME 13 3 3600 1744928484 1742333294 paypal.com f5l9SOGnbgf8H23QOu+uunwLwMgxt7jAYHvuW8d9KNPnQf3FMX80Lxhqzdla6K/f6AOjIyCaBuk2RFKlrTe9iA=="
          },
          {
           "name": "www.glb.paypal.com",
           "type": "RRSIG",
           "ttl": 300,
           "data": "CNAME 13 4 300 1742908056 1742735256 glb.paypal.com 6Fx9cnpencNHlQiPy3m66tGymPvuCQ19fBQNebQTLJSEYv60p9likEjDISpJ+sI0GX/0fu3bdEwCU0VJk4ledw=="
          },
          {
           "name": "www.paypal.com",
           "type": "RRSIG",
           "ttl": 3600,
           "data": "CNAME 13 3 3600 1744928484 1742333294 paypal.com f5l9SOGnbgf8H23QOu+uunwLwMgxt7jAYHvuW8d9KNPnQf3FMX80Lxhqzdla6K/f6AOjIyCaBuk2RFKlrTe9iA=="
          },
          {
           "name": "www.glb.paypal.com",
           "type": "RRSIG",
           "ttl": 300,
           "data": "CNAME 13 4 300 1742908056 1742735256 glb.paypal.com imTdzyhprpa8RdHiR7UNGnzDWMPmWcLsbXuDr5x5OMOUws923pMQCLsAViQ01BaFL7UlazxNPdszb9QuXsGoDA=="
          },
          {
           "name": "paypal.com",
           "type": "RRSIG",
           "ttl": 59,
           "data": "A 13 2 300 1744930569 1742335033 paypal.com lJWZJ+jrUFF1YK0VNdbQv/SCCNcGgs1VHAeGnzl/ch7FoZ7Ij0iFAxcj2Lx0lrC/EqzcKg/Ow40ZM4YzMZSZcQ=="
          },
          {
           "name": "paypal.com",
           "type": "RRSIG",
           "ttl": 2189,
           "data": "MX 13 2 3600 1744911592 1742316283 paypal.com hMLziyfQZNgBumBMCs/hOVJbiBu7hmN+cqDz/y2U919BIuxOFa5ASnmy+uPSTfGxMYuMS8Sc8sO79w9qjBmykw=="
          },
          {
           "name": "paypal.com",
           "type": "RRSIG",
           "ttl": 57,
           "data": "NS 13 2 300 1744922379 1742329900 paypal.com YoHzfPnxMZiDe/c/GJuznmW7VoMGi/+RtwgPjcFZcjo6UIlj3Yc4OeciTg+VroPS0GNiNw/mAwMhPmqQNSUEog=="
          }
         ],
         "dnskey_records": [
          {
           "name": "paypal.com",
           "type": "DNSKEY",
           "ttl": 37,
           "data": "256 3 13 P82aHv27vjeEDMJUhvU8f02W9/WeblsvfMCL+ywMEJgD/9xsRStpOJhZC9EwZ4nQBsP8rlA5rhyXZfBcgc877g=="
          },
          {
           "name": "paypal.com",
           "type": "DNSKEY",
           "ttl": 37,
           "data": "256 3 13 t7/xPcfCnzUrxKawsmnR+SxQAJSSLABBt+y7eV2/BylpqG6vhGuJRVGSsHeuBt/VjC6IByqVMYGu1J9+/s1QbQ=="
          },
          {
           "name": "paypal.com",
           "type": "DNSKEY",
           "ttl": 37,
           "data": "256 3 13 zJFO6JcpeZIZXwqycK0s1dx2o2WscPt3mltjObZe2pfHRGeBROSwdseufTJyQSyfNn+3ZgvcJZq4foKZfXT/WA=="
          },
          {
           "name": "paypal.com",
           "type": "DNSKEY",
           "ttl": 37,
           "data": "257 3 13 UfWINtfVS/tASNWSjcw5K3jSqovFZ6saO8xTwAL3QniwgHkBzBUQHh1Xh4s5eIuEcPZFJ3YY1cem5yQo2Lsq1w=="
          },
          {
           "name": "paypal.com",
           "type": "DNSKEY",
           "ttl": 37,
           "data": "257 3 13 1NYmUeN/Ens1c5m8lmq5/SiqjpMK+dfGDY+3j8KkDgDSiDQev59JlxpQSIgRV723NGBrM5wyDtORZ20rSVkCqA=="
          }
         ],
         "ds_records": [
          {
           "name": "paypal.com",
           "type": "DS",
           "ttl": 76862,
           "data": "7037 13 2 9778f2ff96889ebed549795deaa40a6113f1899af7ca8dd7947fddfeca9a190b"
          },
          {
           "name": "paypal.com",
           "type": "DS",
           "ttl": 76862,
           "data": "34800 13 2 d9e64ba8c8718fd93b596f9d109d9dac47c3f557312201dfcce5dd4128c08f50"
          }
         ],
         "answer": [
          {
           "name": "www.paypal.com",
           "type": "CNAME",
           "ttl": 3357,
           "data": "www.glb.paypal.com"
          },
          {
           "name": "www.paypal.com",
           "type": "RRSIG",
           "ttl": 3357,
           "data": "CNAME 13 3 3600 1744928484 1742333294 paypal.com f5l9SOGnbgf8H23QOu+uunwLwMgxt7jAYHvuW8d9KNPnQf3FMX80Lxhqzdla6K/f6AOjIyCaBuk2RFKlrTe9iA=="
          },
          {
           "name": "www.glb.paypal.com",
           "type": "CNAME",
           "ttl": 57,
           "data": "paypal-dynamic.map.fastly.net"
          },
          {
           "name": "www.glb.paypal.com",
           "type": "RRSIG",
           "ttl": 57,
           "data": "CNAME 13 4 300 1742907789 1742734989 glb.paypal.com Uf7VXZU5DE6knhXR8QqQQiuaQMFhqOtWfYk+duF8tPQaZQ2In04/fimFy6Z3PjDo7CCSkiAmEK36HYY4hF4Dow=="
          },
          {
           "name": "paypal-dynamic.map.fastly.net",
           "type": "A",
           "ttl": 57,
           "data": "151.101.129.21"
          },
          {
           "name": "paypal-dynamic.map.fastly.net",
           "type": "A",
           "ttl": 57,
           "data": "151.101.193.21"
          },
          {
           "name": "paypal-dynamic.map.fastly.net",
           "type": "A",
           "ttl": 57,
           "data": "151.101.65.21"
          },
          {
           "name": "paypal-dynamic.map.fastly.net",
           "type": "A",
           "ttl": 57,
           "data": "151.101.1.21"
          }
         ],
         "elapsed_ms": 169
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 1,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "host": {
          "type": "string",
          "description": "Host to submit, e.g. google.com."
         },
         "dns_type": {
          "type": "string",
          "description": "DNS type, can be one of the following: A, AAAA, MX, NS, TXT, SOA, CAA, CNAME, SRV.",
          "default": "A"
         }
        },
        "required": [
         "host"
        ]
       },
       "example": {
        "host": "www.paypal.com",
        "dns_type": "A"
       }
      }
     }
    }
   }
  },
  "/domain-age": {
   "post": {
    "operationId": "domain_age",
    "tags": [
     "Domain Age API"
    ],
    "summary": "Domain Age API",
    "description": "Get the age of a domain: creation date and age in days, months and years. Useful to detect newly (and potentially suspicious) registered domains in threat analysis.\n\nConsumes 1 credit per successful request (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/domain-age-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/domain-age-api/",
     "description": "Domain Age API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "host": {
           "type": "string",
           "description": "Host submitted for the domain age check."
          },
          "debug_message": {
           "type": "string",
           "description": "Debug or error details about the request, if any. Empty string if none."
          },
          "domain_age_found": {
           "type": "boolean",
           "description": "Returns true if domain age was successfully retrieved."
          },
          "domain_registered": {
           "type": "string",
           "description": "Returns \"yes\" if domain is registered, can be yes/no/unknown."
          },
          "domain_creation_date": {
           "type": "string",
           "description": "Domain registration date, format is Y-m-d (empty if unknown)."
          },
          "domain_age_in_days": {
           "type": "integer",
           "description": "Age of the domain in days (0 if unknown)."
          },
          "domain_age_in_months": {
           "type": "integer",
           "description": "Age of the domain in months (0 if unknown)."
          },
          "domain_age_in_years": {
           "type": "integer",
           "description": "Age of the domain in years (0 if unknown)."
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "host": "example.com",
         "debug_message": "",
         "domain_age_found": true,
         "domain_registered": "yes",
         "domain_creation_date": "1995-08-14",
         "domain_age_in_days": 10700,
         "domain_age_in_months": 345,
         "domain_age_in_years": 29,
         "elapsed_ms": 310
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 1,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "host": {
          "type": "string",
          "description": "Host to submit, e.g. google.com."
         },
         "timeout": {
          "type": "integer",
          "description": "Set a custom timeout in seconds, can be from 5 to 30 seconds.",
          "default": 25
         },
         "cache_only": {
          "type": "boolean",
          "description": "Get data only from the cache (if present) for a faster response.",
          "default": false
         }
        },
        "required": [
         "host"
        ]
       },
       "example": {
        "host": "example.com"
       }
      }
     }
    }
   }
  },
  "/domain-info": {
   "post": {
    "operationId": "domain_info",
    "tags": [
     "Domain Info API"
    ],
    "summary": "Domain Info API",
    "description": "Get whois-like domain information: registrar, abuse email, owner organization and country, creation date, nameservers and DNSSEC status.\n\nConsumes 2 credits per successful request (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/domain-info-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/domain-info-api/",
     "description": "Domain Info API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "host": {
           "type": "string",
           "description": "Host submitted for the domain info lookup."
          },
          "debug_message": {
           "type": "string",
           "description": "Debug or error details about the request, if any. Empty string if none."
          },
          "domain_age_found": {
           "type": "boolean",
           "description": "Returns true if domain age was successfully retrieved."
          },
          "domain_registered": {
           "type": "string",
           "description": "Returns \"yes\" if domain is registered, can be yes/no/unknown."
          },
          "domain_creation_date": {
           "type": "string",
           "description": "Domain registration date, format is Y-m-d (empty if unknown)."
          },
          "domain_age_in_days": {
           "type": "integer",
           "description": "Age of the domain in days (0 if unknown)."
          },
          "domain_age_in_months": {
           "type": "integer",
           "description": "Age of the domain in months (0 if unknown)."
          },
          "domain_age_in_years": {
           "type": "integer",
           "description": "Age of the domain in years (0 if unknown)."
          },
          "registrar": {
           "type": "string",
           "description": "Domain registrar such as NameCheap Inc. or GoDaddy.com, LLC."
          },
          "registrar_url": {
           "type": "string",
           "description": "Domain registrar url, such as namecheap.com."
          },
          "registrar_abuse_email": {
           "type": "string",
           "description": "Domain registrar abuse email address."
          },
          "registrar_abuse_form": {
           "type": "string",
           "description": "URL of the registrar abuse form, such as https://supportcenter.godaddy.com/AbuseReport."
          },
          "registrar_twitter": {
           "type": "string",
           "description": "Twitter username of domain registrar, such as GoDaddy."
          },
          "owner_organization": {
           "type": "string",
           "description": "Domain owner organization, such as Google LLC."
          },
          "owner_country": {
           "type": "string",
           "description": "Domain owner country code, such as US."
          },
          "owner_state_province": {
           "type": "string",
           "description": "State or province of the domain owner, from WHOIS data. Empty string if not available."
          },
          "owner_email_hash": {
           "type": "string",
           "description": "Domain owner email (hashed for privacy reasons)."
          },
          "owner_email_domain": {
           "type": "string",
           "description": "Domain owner email domain, such as gmail.com."
          },
          "owner_free_email": {
           "type": "boolean",
           "description": "Returns true if owner email is a free email."
          },
          "owner_private_person": {
           "type": "boolean",
           "description": "Returns true if domain owner is a potential private person."
          },
          "whois_data_hidden": {
           "type": "boolean",
           "description": "Returns true if domain whois data is hidden/masked."
          },
          "dnssec": {
           "type": "string",
           "description": "Check DNSSEC records, can be signed/unsigned/unknown."
          },
          "nameservers": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "name": {
              "type": "string",
              "description": "Name server hostname."
             },
             "ipv4": {
              "type": "string",
              "description": "IPv4 address of the name server. Empty string if none."
             },
             "ipv6": {
              "type": "string",
              "description": "IPv6 address of the name server. Empty string if none."
             }
            }
           },
           "description": "Returns an array with nameservers with their IPv4 and IPv6 addresses."
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "host": "google.com",
         "debug_message": "",
         "domain_age_found": true,
         "domain_registered": "yes",
         "domain_creation_date": "1997-09-15",
         "domain_age_in_days": 9970,
         "domain_age_in_months": 321,
         "domain_age_in_years": 27,
         "registrar": "MarkMonitor Inc.",
         "registrar_url": "markmonitor.com",
         "registrar_abuse_email": "abusecomplaints@markmonitor.com",
         "registrar_abuse_form": "",
         "registrar_twitter": "markmonitor",
         "owner_organization": "Google LLC",
         "owner_country": "US",
         "owner_state_province": "CA",
         "owner_email_hash": "",
         "owner_email_domain": "",
         "owner_free_email": false,
         "owner_private_person": false,
         "whois_data_hidden": false,
         "dnssec": "unsigned",
         "nameservers": [
          {
           "name": "ns1.google.com",
           "ipv4": "216.239.32.10",
           "ipv6": "2001:4860:4802:32::a"
          },
          {
           "name": "ns4.google.com",
           "ipv4": "216.239.38.10",
           "ipv6": "2001:4860:4802:38::a"
          },
          {
           "name": "ns3.google.com",
           "ipv4": "216.239.36.10",
           "ipv6": "2001:4860:4802:36::a"
          },
          {
           "name": "ns2.google.com",
           "ipv4": "216.239.34.10",
           "ipv6": "2001:4860:4802:34::a"
          }
         ],
         "elapsed_ms": 524
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 2,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "host": {
          "type": "string",
          "description": "Host to submit, e.g. google.com."
         },
         "timeout": {
          "type": "integer",
          "description": "Set a custom timeout in seconds, can be from 5 to 30 seconds.",
          "default": 25
         },
         "cache_only": {
          "type": "boolean",
          "description": "Get data only from the cache (if present) for a faster response.",
          "default": false
         }
        },
        "required": [
         "host"
        ]
       },
       "example": {
        "host": "google.com"
       }
      }
     }
    }
   }
  },
  "/domain-reputation": {
   "post": {
    "operationId": "domain_reputation",
    "tags": [
     "Domain Reputation API"
    ],
    "summary": "Domain Reputation API",
    "description": "Check a domain's reputation across multiple trusted blacklist services, with an overall risk score, per-engine detection details, and additional security checks.\n\nConsumes 1 credit per successful request (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/domain-reputation-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/domain-reputation-api/",
     "description": "Domain Reputation API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "host": {
           "type": "string",
           "description": "Host submitted for scanning."
          },
          "blacklists": {
           "type": "object",
           "properties": {
            "engines": {
             "type": "object",
             "additionalProperties": {
              "type": "object",
              "properties": {
               "name": {
                "type": "string",
                "description": "Name of the scanning engine."
               },
               "detected": {
                "type": "boolean",
                "description": "Returns true if this engine flagged the submitted domain."
               },
               "reference": {
                "type": "string",
                "description": "Link to the engine's website or listing details."
               },
               "confidence": {
                "type": "string",
                "description": "Confidence level of this engine detection. Can be high or low."
               },
               "elapsed_ms": {
                "type": "integer",
                "description": "Time taken by this engine to complete its check, in milliseconds."
               }
              }
             },
             "description": "List of scanning engines with detection status and reference link."
            },
            "detections": {
             "type": "integer",
             "description": "Number of scanning engines that detected the submitted host."
            },
            "engines_count": {
             "type": "integer",
             "description": "Number of scanning engines used to scan the host."
            },
            "detection_rate": {
             "type": "string",
             "description": "Percentage of engines that detected the domain, e.g. 5%."
            },
            "scan_time_ms": {
             "type": "integer",
             "description": "Time taken to scan the domain across all engines, in milliseconds."
            }
           }
          },
          "server_details": {
           "type": "object",
           "properties": {
            "ip": {
             "type": "string",
             "description": "IP address of the submitted host."
            },
            "reverse_dns": {
             "type": "string",
             "description": "Hostname (reverse DNS) assigned to the host's IP address."
            },
            "continent_code": {
             "type": "string",
             "description": "Continent code (e.g. NA) of where the host's IP address is located."
            },
            "continent_name": {
             "type": "string",
             "description": "Continent name (e.g. North America) of where the host's IP address is located."
            },
            "country_code": {
             "type": "string",
             "description": "Country code (e.g. CN) of where the host's IP address is located."
            },
            "country_name": {
             "type": "string",
             "description": "Country name of where the host's IP address is located."
            },
            "region_name": {
             "type": "string",
             "description": "Region or state name of where the host's IP address is located."
            },
            "city_name": {
             "type": "string",
             "description": "City name of where the host's IP address is located."
            },
            "latitude": {
             "type": "number",
             "description": "Approximate latitude of the host's IP address."
            },
            "longitude": {
             "type": "number",
             "description": "Approximate longitude of the host's IP address."
            },
            "isp": {
             "type": "string",
             "description": "Internet Service Provider (ISP) of host's IP address."
            },
            "asn": {
             "type": "string",
             "description": "IP Autonomous System Number (ASN), such as AS16509."
            }
           }
          },
          "category": {
           "type": "object",
           "properties": {
            "is_free_hosting": {
             "type": "boolean",
             "description": "Returns true if host is a free hosting provider, e.g. 000webhostapp.com."
            },
            "is_anonymizer": {
             "type": "boolean",
             "description": "Returns true if host is an anonymizer service, e.g. a web proxy."
            },
            "is_url_shortener": {
             "type": "boolean",
             "description": "Returns true if host is a URL shortening service, e.g. rebrand.ly."
            },
            "is_free_dynamic_dns": {
             "type": "boolean",
             "description": "Returns true if host is a free dynamic DNS provider, e.g. dns-cloud.net."
            },
            "is_code_sandbox": {
             "type": "boolean",
             "description": "Returns true if website is a code sandbox service, e.g. repl.co."
            },
            "is_form_builder": {
             "type": "boolean",
             "description": "Returns true if website is a form builder service, e.g. forms.gle."
            },
            "is_free_file_sharing": {
             "type": "boolean",
             "description": "Returns true if website is a free file hosting service, e.g. wetransfer.com."
            },
            "is_pastebin": {
             "type": "boolean",
             "description": "Returns true if website is a pastebin service, e.g. pastebin.com."
            },
            "is_qrcode_service": {
             "type": "boolean",
             "description": "Returns true if website is a QRCode service, e.g. uqr.to."
            }
           }
          },
          "security_checks": {
           "type": "object",
           "properties": {
            "is_most_abused_tld": {
             "type": "boolean",
             "description": "Returns true if host TLD is risky, e.g. .tk or .top."
            },
            "is_domain_ipv4_assigned": {
             "type": "boolean",
             "description": "Returns true if the domain resolves to an assigned IPv4 address."
            },
            "is_domain_ipv4_private": {
             "type": "boolean",
             "description": "Returns true if the domain resolves to a private IPv4 address."
            },
            "is_domain_ipv4_loopback": {
             "type": "boolean",
             "description": "Returns true if the domain resolves to a loopback (e.g. 127.0.0.1) IPv4 address."
            },
            "is_domain_ipv4_reserved": {
             "type": "boolean",
             "description": "Returns true if the domain resolves to a reserved IPv4 address."
            },
            "is_domain_ipv4_valid": {
             "type": "boolean",
             "description": "Returns true if the domain resolves to a valid public IPv4 address."
            },
            "is_domain_blacklisted": {
             "type": "boolean",
             "description": "Returns true if domain is detected by at least 1 blacklist engine."
            },
            "detections_count": {
             "type": "integer",
             "description": "Number of security checks that returned true."
            },
            "is_uncommon_host_length": {
             "type": "boolean",
             "description": "Returns true if the host length is uncommon (such as, a very long domain)."
            },
            "is_uncommon_dash_char_count": {
             "type": "boolean",
             "description": "Returns true if the host contains too many dash \"-\" characters."
            },
            "is_uncommon_dot_char_count": {
             "type": "boolean",
             "description": "Returns true if the host contains too many dot \".\" characters."
            },
            "is_suspicious_homoglyph": {
             "type": "boolean",
             "description": "Returns true if the domain contains suspicious homoglyph characters."
            },
            "is_possible_typosquatting": {
             "type": "boolean",
             "description": "Returns true if the domain is potentially a typosquatted variant of a known domain."
            },
            "website_popularity": {
             "type": "string",
             "description": "Estimated website popularity, can be: low, medium, high."
            },
            "is_uncommon_clickable_domain": {
             "type": "boolean",
             "description": "Returns true if the domain is considered unusual as a clickable link."
            },
            "is_risky_category": {
             "type": "boolean",
             "description": "Returns true if domain is a free DNS provider, free hosting provider or URL shortener."
            },
            "is_domain_recent": {
             "type": "string",
             "description": "Returns \"yes\" if domain was created less than 6 months ago, can be yes/no/unknown."
            },
            "is_domain_very_recent": {
             "type": "string",
             "description": "Returns \"yes\" if domain was created less than 30 days ago, can be yes/no/unknown."
            },
            "domain_creation_date": {
             "type": "string",
             "description": "Domain registration date, format is Y-m-d (empty if unknown)."
            },
            "domain_age_in_days": {
             "type": "integer",
             "description": "Age of the domain in days (0 if unknown)."
            },
            "domain_age_in_months": {
             "type": "integer",
             "description": "Age of the domain in months (0 if unknown)."
            },
            "domain_age_in_years": {
             "type": "integer",
             "description": "Age of the domain in years (0 if unknown)."
            }
           }
          },
          "domain_parts": {
           "type": "object",
           "properties": {
            "root_domain": {
             "type": "string",
             "description": "Registered root domain (e.g. example.com), excluding subdomains."
            },
            "subdomain": {
             "type": "string",
             "description": "Subdomain portion of the host (e.g. www). Empty string if none."
            },
            "tld": {
             "type": "string",
             "description": "Top-level domain (e.g. com, org, co.uk)."
            }
           }
          },
          "risk_score": {
           "type": "object",
           "properties": {
            "result": {
             "type": "integer",
             "description": "Returns risk score, a number between 0 (safe) and 100 (dangerous)."
            }
           }
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "host": "google.com",
         "blacklists": {
          "engines": {
           "0": {
            "name": "ANJ Blocked Sites",
            "detected": false,
            "reference": "https://anj.fr/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "1": {
            "name": "AntiSocial Blacklist",
            "detected": false,
            "reference": "https://theantisocialengineer.com/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "2": {
            "name": "APVA",
            "detected": false,
            "reference": "https://www.antiphish.org/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "3": {
            "name": "Artists Against 419",
            "detected": false,
            "reference": "https://wiki.aa419.org/index.php/Main_Page",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "4": {
            "name": "AZORult Tracker",
            "detected": false,
            "reference": "https://azorult-tracker.net/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "5": {
            "name": "Badbitcoin",
            "detected": false,
            "reference": "https://badbitcoin.org/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "6": {
            "name": "Bambenek Consulting",
            "detected": false,
            "reference": "https://www.bambenekconsulting.com/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "7": {
            "name": "CERT Polska",
            "detected": false,
            "reference": "https://www.cert.pl/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "8": {
            "name": "COI CZ",
            "detected": false,
            "reference": "https://coi.gov.cz/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "9": {
            "name": "CryptoScamDB",
            "detected": false,
            "reference": "https://cryptoscamdb.org/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "10": {
            "name": "EtherAddressLookup",
            "detected": false,
            "reference": "https://github.com/409H/EtherAddressLookup/",
            "confidence": "high",
            "elapsed_ms": 0
           }
          },
          "detections": 0,
          "engines_count": 42,
          "detection_rate": "0%",
          "scan_time_ms": 139
         },
         "server_details": {
          "ip": "192.178.219.139",
          "reverse_dns": "ux-in-f139.1e100.net",
          "continent_code": "NA",
          "continent_name": "North America",
          "country_code": "US",
          "country_name": "United States of America",
          "region_name": "California",
          "city_name": "Mountain View",
          "latitude": 37.38605,
          "longitude": -122.08385,
          "isp": "Google LLC",
          "asn": "AS15169"
         },
         "category": {
          "is_free_hosting": false,
          "is_anonymizer": false,
          "is_url_shortener": false,
          "is_free_dynamic_dns": false,
          "is_code_sandbox": false,
          "is_form_builder": false,
          "is_free_file_sharing": false,
          "is_pastebin": false,
          "is_qrcode_service": false
         },
         "security_checks": {
          "is_most_abused_tld": false,
          "is_domain_ipv4_assigned": true,
          "is_domain_ipv4_private": false,
          "is_domain_ipv4_loopback": false,
          "is_domain_ipv4_reserved": false,
          "is_domain_ipv4_valid": true,
          "is_domain_blacklisted": false,
          "detections_count": 0,
          "is_uncommon_host_length": false,
          "is_uncommon_dash_char_count": false,
          "is_uncommon_dot_char_count": false,
          "is_suspicious_homoglyph": false,
          "is_possible_typosquatting": false,
          "website_popularity": "high",
          "is_uncommon_clickable_domain": false,
          "is_risky_category": false
         },
         "domain_parts": {
          "root_domain": "google.com",
          "subdomain": "",
          "tld": "com"
         },
         "risk_score": {
          "result": 0
         },
         "elapsed_ms": 140
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 1,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "host": {
          "type": "string",
          "description": "Host to submit, e.g. google.com."
         },
         "exclude_engines": {
          "type": "string",
          "description": "List of comma-separated engines to exclude, e.g. Malc0de,Spam404."
         },
         "spamhaus_key": {
          "type": "string",
          "description": "Your Spamhaus DBL DQS key, this will enable the Spamhaus engine."
         },
         "include_domain_age": {
          "type": "boolean",
          "description": "Include domain age as risk factor and detect recently created domains. New response fields (when enabled): is_domain_recent is_domain_very_recent domain_creation_date domain_age_in_days domain_age_in_months domain_age_in_years. These new response fields are inside security_checks. (+1 Credit)",
          "default": false
         },
         "domain_age_cache_only": {
          "type": "boolean",
          "description": "Get data only from the cache (if present) for a faster response. Requires \"include_domain_age\": true.",
          "default": false
         }
        },
        "required": [
         "host"
        ]
       },
       "example": {
        "host": "google.com"
       }
      }
     }
    }
   }
  },
  "/email-verify": {
   "post": {
    "operationId": "email_verify",
    "tags": [
     "Email Verify API"
    ],
    "summary": "Email Verify API",
    "description": "Verify an email address: syntax checks, disposable and free provider detection, presence of MX records, TXT and SPF records, and a suspicious email score.\n\nConsumes 1 credit per successful request (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/email-verify-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/email-verify-api/",
     "description": "Email Verify API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "email": {
           "type": "string",
           "description": "Email address submitted for verification."
          },
          "canonical_email": {
           "type": "string",
           "description": "Returns the canonical form of the email address after normalization (e.g. a.b.c.d@gmail.com \u2192 abcd@gmail.com)."
          },
          "valid_format": {
           "type": "boolean",
           "description": "Returns true if the email has a valid format."
          },
          "username": {
           "type": "string",
           "description": "Returns the email username (e.g. user1@gmail.com \u2192 user1)."
          },
          "role_address": {
           "type": "boolean",
           "description": "Returns true if email is a role address, e.g. admin@website.com."
          },
          "system_address": {
           "type": "boolean",
           "description": "Returns true if email is a system-generated address, e.g. mailer-daemon@website.com."
          },
          "noreply_address": {
           "type": "boolean",
           "description": "Returns true if email is a \"noreply\" address, e.g. no-reply@website.com."
          },
          "suspicious_username": {
           "type": "boolean",
           "description": "Returns true if username is suspicious, e.g. only numbers."
          },
          "dirty_words_username": {
           "type": "boolean",
           "description": "Returns true if username contains \"dirty\" or bad words."
          },
          "suspicious_email": {
           "type": "boolean",
           "description": "Returns true if the email address is suspicious and involved in signup abuse or spam."
          },
          "email_length": {
           "type": "integer",
           "description": "Returns the total length of the email address, including the @ symbol."
          },
          "username_length": {
           "type": "integer",
           "description": "Returns the length of the email username (the part before @)."
          },
          "domain_length": {
           "type": "integer",
           "description": "Returns the length of the email domain (the part after @)."
          },
          "username_has_only_digits": {
           "type": "boolean",
           "description": "Returns true if the email username consists only of digits (e.g. 1234567890@gmail.com)."
          },
          "username_has_celebrity_name": {
           "type": "boolean",
           "description": "Returns true if the email username contains a celebrity name (e.g. tony.stark1@gmail.com)."
          },
          "username_dots_count": {
           "type": "integer",
           "description": "Returns the number of dot (.) characters in the email username."
          },
          "username_underscores_count": {
           "type": "integer",
           "description": "Returns the number of underscore (_) characters in the email username."
          },
          "username_hyphens_count": {
           "type": "integer",
           "description": "Returns the number of hyphen (-) characters in the email username."
          },
          "username_digits_count": {
           "type": "integer",
           "description": "Returns the number of numeric characters in the email username."
          },
          "username_letters_count": {
           "type": "integer",
           "description": "Returns the number of alphabetic characters in the email username."
          },
          "domain": {
           "type": "string",
           "description": "Returns the email domain (e.g. user1@gmail.com \u2192 gmail.com)."
          },
          "root_domain": {
           "type": "string",
           "description": "Returns the root domain (e.g. gmail.com)."
          },
          "subdomain": {
           "type": "string",
           "description": "Returns the subdomain, such as www."
          },
          "tld": {
           "type": "string",
           "description": "Returns the TLD of the domain, such as com."
          },
          "valid_tld": {
           "type": "boolean",
           "description": "Returns true if domain TLD is valid, e.g. .com or .co.uk."
          },
          "public_domain": {
           "type": "boolean",
           "description": "Returns true if domain is public and not internal or reserved."
          },
          "disposable": {
           "type": "boolean",
           "description": "Returns true if email is a disposable or temporary email address."
          },
          "email_forwarder": {
           "type": "boolean",
           "description": "Returns true if the email address is a forwarding address (e.g. from the SimpleLogin service)."
          },
          "has_a_records": {
           "type": "boolean",
           "description": "Returns true if domain has DNS A records configured."
          },
          "has_mx_records": {
           "type": "boolean",
           "description": "Returns true if domain has DNS MX records configured."
          },
          "has_txt_records": {
           "type": "boolean",
           "description": "Returns true if domain has DNS TXT records configured."
          },
          "has_spf_records": {
           "type": "boolean",
           "description": "Returns true if domain has DNS SPF records configured."
          },
          "spf_qualifier": {
           "type": "string",
           "description": "Returns the SPF qualifier (e.g. pass, fail, softfail, neutral)."
          },
          "spf_strict": {
           "type": "boolean",
           "description": "Returns true if the SPF policy is strictly enforced (i.e. a -all mechanism is present)."
          },
          "dmarc_configured": {
           "type": "boolean",
           "description": "Returns true if domain has DNS DMARC records configured."
          },
          "dmarc_enforced": {
           "type": "boolean",
           "description": "Returns true if domain is configured for DMARC and set to an enforcement policy (reject or quarantine)."
          },
          "is_spoofable": {
           "type": "boolean",
           "description": "Returns true if the email address is potentially spoofable (e.g. SPF or DMARC are not strictly enforced)."
          },
          "free_email": {
           "type": "boolean",
           "description": "Returns true if email is a free email, e.g. gmail.com."
          },
          "russian_free_email": {
           "type": "boolean",
           "description": "Returns true if email is a free Russian email, e.g. mail.ru."
          },
          "china_free_email": {
           "type": "boolean",
           "description": "Returns true if email is a free China email, e.g. 163.com."
          },
          "did_you_mean": {
           "type": "string",
           "description": "Returns the corrected email address, e.g. abc@gmal.com \u2192 abc@gmail.com."
          },
          "suspicious_domain": {
           "type": "boolean",
           "description": "Returns true if the domain is suspicious (e.g. known for spam or signup abuse)."
          },
          "dirty_words_domain": {
           "type": "boolean",
           "description": "Returns true if domain contains \"dirty\" or bad words."
          },
          "domain_popular": {
           "type": "boolean",
           "description": "Returns true if domain is a known popular domain."
          },
          "risky_tld": {
           "type": "boolean",
           "description": "Returns true if domain TLD is risky, e.g. .top or .pro."
          },
          "police_domain": {
           "type": "boolean",
           "description": "Returns true if domain is a police-related domain."
          },
          "government_domain": {
           "type": "boolean",
           "description": "Returns true if domain is a government domain, e.g. .gov."
          },
          "educational_domain": {
           "type": "boolean",
           "description": "Returns true if domain is an educational domain, e.g. .edu."
          },
          "student_email": {
           "type": "boolean",
           "description": "Returns true if the email address matches common student email patterns."
          },
          "should_block": {
           "type": "boolean",
           "description": "Returns true if the score is bad (<= 70) and thus it should be blocked."
          },
          "score": {
           "type": "integer",
           "description": "Returns a number between 0 (bad) and 100 (good)."
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "email": "a1k5z0a3@yopmail.com",
         "canonical_email": "a1k5z0a3@yopmail.com",
         "valid_format": true,
         "username": "a1k5z0a3",
         "role_address": false,
         "system_address": false,
         "noreply_address": false,
         "suspicious_username": false,
         "dirty_words_username": false,
         "suspicious_email": false,
         "email_length": 20,
         "username_length": 8,
         "domain_length": 11,
         "username_has_only_digits": false,
         "username_has_celebrity_name": false,
         "username_dots_count": 0,
         "username_underscores_count": 0,
         "username_hyphens_count": 0,
         "username_digits_count": 4,
         "username_letters_count": 4,
         "domain": "yopmail.com",
         "root_domain": "yopmail.com",
         "subdomain": "",
         "tld": "com",
         "valid_tld": true,
         "public_domain": true,
         "disposable": true,
         "email_forwarder": false,
         "has_a_records": true,
         "has_mx_records": true,
         "has_txt_records": true,
         "has_spf_records": true,
         "spf_qualifier": "fail",
         "spf_strict": true,
         "dmarc_configured": true,
         "dmarc_enforced": true,
         "is_spoofable": false,
         "free_email": false,
         "russian_free_email": false,
         "china_free_email": false,
         "did_you_mean": "",
         "suspicious_domain": false,
         "dirty_words_domain": false,
         "domain_popular": false,
         "risky_tld": false,
         "police_domain": false,
         "government_domain": false,
         "educational_domain": false,
         "student_email": false,
         "should_block": true,
         "score": 0,
         "elapsed_ms": 3
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 1,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "email": {
          "type": "string",
          "description": "Email to submit, e.g. a1k5z0a3@yopmail.com."
         }
        },
        "required": [
         "email"
        ]
       },
       "example": {
        "email": "a1k5z0a3@yopmail.com"
       }
      }
     }
    }
   }
  },
  "/eml-insights": {
   "post": {
    "operationId": "eml_insights",
    "tags": [
     "EML Insights API"
    ],
    "summary": "EML Insights API",
    "description": "Analyze an EML email file: extract and parse headers, sender and recipient details, SPF and DMARC authentication results, URLs, attachments and security signals.\n\nConsumes 2 credits per successful request (non-200 responses never consume credits). Can take up to 60 seconds; set your client timeout accordingly. Full reference: https://docs.apivoid.com/eml-insights-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/eml-insights-api/",
     "description": "EML Insights API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "metadata": {
           "type": "object",
           "properties": {
            "message_id": {
             "type": "string",
             "description": "Message-ID header of the email."
            },
            "message_sha256_hash": {
             "type": "string",
             "description": "SHA-256 hash of the email message."
            },
            "date_time": {
             "type": "string",
             "description": "Date header of the email as found in the message."
            },
            "date_time_normalized": {
             "type": "string",
             "description": "Date of the email normalized to ISO 8601 UTC format."
            }
           }
          },
          "headers": {
           "type": "object",
           "properties": {
            "subject": {
             "type": "string",
             "description": "Subject of the email."
            },
            "from_name": {
             "type": "string",
             "description": "Display name of the sender."
            },
            "from_email": {
             "type": "string",
             "description": "Email address of the sender."
            },
            "return_path": {
             "type": "string",
             "description": "Return-Path header of the email."
            },
            "reply_to": {
             "type": "string",
             "description": "Reply-To header of the email."
            },
            "delivered_to": {
             "type": "string",
             "description": "Delivered-To header of the email."
            },
            "to": {
             "type": "array",
             "items": {
              "type": "string"
             },
             "description": "List of recipient email addresses in the To header."
            },
            "cc": {
             "type": "array",
             "items": {},
             "description": "List of recipient email addresses in the Cc header."
            },
            "bcc": {
             "type": "array",
             "items": {},
             "description": "List of recipient email addresses in the Bcc header."
            },
            "content_type": {
             "type": "string",
             "description": "Content-Type of the email, e.g. multipart/alternative."
            },
            "user_agent": {
             "type": "string",
             "description": "User-Agent header of the email client, if present."
            },
            "x_mailer": {
             "type": "string",
             "description": "X-Mailer header of the email client, if present."
            },
            "x_library": {
             "type": "string",
             "description": "X-Library header identifying the sending library, if present."
            },
            "list_unsubscribe": {
             "type": "array",
             "items": {},
             "description": "List-Unsubscribe URLs or email addresses, if present."
            },
            "received_spf": {
             "type": "string",
             "description": "Received-SPF header with the SPF evaluation result."
            },
            "authentication_results": {
             "type": "string",
             "description": "Authentication-Results header with SPF, DKIM and DMARC results."
            },
            "dkim_signatures": {
             "type": "array",
             "items": {
              "type": "object",
              "properties": {
               "signature": {
                "type": "string",
                "description": "Raw DKIM-Signature header value."
               },
               "selector": {
                "type": "string",
                "description": "DKIM selector used by the signature (s= tag)."
               },
               "domain": {
                "type": "string",
                "description": "Domain that signed the email (d= tag)."
               },
               "algo": {
                "type": "string",
                "description": "Signing algorithm, e.g. rsa-sha256."
               },
               "key_type": {
                "type": "string",
                "description": "Key type of the signature, e.g. rsa."
               },
               "canon": {
                "type": "string",
                "description": "Canonicalization method, e.g. relaxed/relaxed."
               },
               "hash": {
                "type": "string",
                "description": "Body hash of the signature (bh= tag)."
               },
               "key_bits": {
                "type": "integer",
                "description": "Size of the signing key in bits."
               },
               "dnssec": {
                "type": "boolean",
                "description": "Returns true if the DKIM DNS record is protected by DNSSEC."
               }
              }
             },
             "description": "DKIM signatures found in the email headers."
            }
           }
          },
          "body": {
           "type": "object",
           "properties": {
            "body_text": {
             "type": "string",
             "description": "Plain text content of the email body."
            }
           }
          },
          "attachments": {
           "type": "object",
           "properties": {
            "files": {
             "type": "array",
             "items": {
              "type": "object",
              "properties": {
               "name": {
                "type": "string",
                "description": "File name of the attachment."
               },
               "extension": {
                "type": "string",
                "description": "File extension of the attachment."
               },
               "is_risky_extension": {
                "type": "boolean",
                "description": "Returns true if the file extension is considered risky."
               },
               "content_type": {
                "type": "string",
                "description": "MIME content type of the attachment."
               },
               "size": {
                "type": "integer",
                "description": "File size of the attachment in bytes."
               },
               "md5_hash": {
                "type": "string",
                "description": "MD5 hash of the attachment."
               },
               "is_inline": {
                "type": "boolean",
                "description": "Returns true if the attachment is inline (e.g. embedded image)."
               },
               "content_id": {
                "type": "string",
                "description": "Content-ID of the attachment, if present."
               },
               "disposition": {
                "type": "string",
                "description": "Content disposition of the attachment, e.g. attachment, inline."
               },
               "cid_referenced": {
                "type": "boolean",
                "description": "Returns true if the attachment Content-ID is referenced in the email body."
               },
               "is_document": {
                "type": "boolean",
                "description": "Returns true if the attachment is a document file."
               },
               "is_archive": {
                "type": "boolean",
                "description": "Returns true if the attachment is an archive file."
               },
               "is_archive_encrypted": {
                "type": "boolean",
                "description": "Returns true if the attachment is a password-protected archive."
               },
               "extracted_files": {
                "type": "array",
                "items": {
                 "type": "object",
                 "properties": {
                  "name": {
                   "type": "string",
                   "description": "File name of the file extracted from the archive."
                  },
                  "extension": {
                   "type": "string",
                   "description": "File extension of the extracted file, e.g. .bat."
                  },
                  "is_risky_extension": {
                   "type": "boolean",
                   "description": "Returns true if the extracted file has a commonly abused extension (e.g. .bat, .exe, .js)."
                  },
                  "is_document": {
                   "type": "boolean",
                   "description": "Returns true if the extracted file is a document (e.g. PDF or Office file)."
                  },
                  "is_archive": {
                   "type": "boolean",
                   "description": "Returns true if the extracted file is itself an archive."
                  },
                  "is_archive_encrypted": {
                   "type": "boolean",
                   "description": "Returns true if the extracted archive is password-protected."
                  },
                  "last_modified_at": {
                   "type": "string",
                   "description": "Last modified timestamp of the extracted file (UTC)."
                  },
                  "size": {
                   "type": "integer",
                   "description": "Size of the extracted file, in bytes."
                  },
                  "md5_hash": {
                   "type": "string",
                   "description": "MD5 hash of the extracted file."
                  }
                 }
                },
                "description": "Files extracted from the archive, with name, extension, size, md5_hash and risk flags."
               }
              }
             },
             "description": "List of files attached to the email."
            },
            "file_extensions": {
             "type": "array",
             "items": {
              "type": "string"
             },
             "description": "List of unique file extensions found in the attachments."
            },
            "md5_hashes": {
             "type": "array",
             "items": {
              "type": "string"
             },
             "description": "List of MD5 hashes of the attachments."
            }
           }
          },
          "ioc": {
           "type": "object",
           "properties": {
            "urls": {
             "type": "object",
             "properties": {
              "urls": {
               "type": "array",
               "items": {
                "type": "string"
               },
               "description": "URLs found in the email body."
              },
              "redirects": {
               "type": "array",
               "items": {
                "type": "string"
               },
               "description": "URLs identified as redirects."
              },
              "direct_downloads": {
               "type": "array",
               "items": {},
               "description": "URLs identified as direct file downloads."
              },
              "with_ip_host": {
               "type": "array",
               "items": {},
               "description": "URLs that use an IP address as host."
              },
              "domains": {
               "type": "array",
               "items": {
                "type": "string"
               },
               "description": "Domains extracted from the URLs found."
              },
              "root_domains": {
               "type": "array",
               "items": {
                "type": "string"
               },
               "description": "Root domains extracted from the URLs found."
              },
              "tlds": {
               "type": "array",
               "items": {
                "type": "string"
               },
               "description": "TLDs extracted from the URLs found."
              }
             }
            },
            "emails": {
             "type": "object",
             "properties": {
              "emails": {
               "type": "array",
               "items": {
                "type": "string"
               },
               "description": "Email addresses found in the email."
              },
              "domains": {
               "type": "array",
               "items": {
                "type": "string"
               },
               "description": "Domains extracted from the email addresses found."
              },
              "root_domains": {
               "type": "array",
               "items": {
                "type": "string"
               },
               "description": "Root domains extracted from the email addresses found."
              },
              "tlds": {
               "type": "array",
               "items": {
                "type": "string"
               },
               "description": "TLDs extracted from the email addresses found."
              }
             }
            },
            "received_from": {
             "type": "object",
             "properties": {
              "domains": {
               "type": "array",
               "items": {
                "type": "string"
               },
               "description": "Domains found in the Received headers."
              },
              "root_domains": {
               "type": "array",
               "items": {
                "type": "string"
               },
               "description": "Root domains found in the Received headers."
              },
              "tlds": {
               "type": "array",
               "items": {
                "type": "string"
               },
               "description": "TLDs found in the Received headers."
              }
             }
            },
            "dkim_domains": {
             "type": "object",
             "properties": {
              "domains": {
               "type": "array",
               "items": {
                "type": "string"
               },
               "description": "Domains found in the DKIM signatures."
              },
              "root_domains": {
               "type": "array",
               "items": {
                "type": "string"
               },
               "description": "Root domains found in the DKIM signatures."
              },
              "tlds": {
               "type": "array",
               "items": {
                "type": "string"
               },
               "description": "TLDs found in the DKIM signatures."
              }
             }
            },
            "bitcoin_addresses": {
             "type": "array",
             "items": {},
             "description": "Bitcoin addresses found in the email."
            },
            "phone_numbers": {
             "type": "array",
             "items": {},
             "description": "Phone numbers found in the email."
            }
           }
          },
          "sender_details": {
           "type": "object",
           "properties": {
            "email": {
             "type": "string",
             "description": "Email address of the sender."
            },
            "domain": {
             "type": "string",
             "description": "Domain of the sender email address."
            },
            "root_domain": {
             "type": "string",
             "description": "Root domain of the sender email address."
            },
            "tld": {
             "type": "string",
             "description": "TLD of the sender email address."
            },
            "ip_address": {
             "type": "string",
             "description": "IP address of the sending mail server."
            },
            "hostname": {
             "type": "string",
             "description": "Hostname (reverse DNS) of the sending mail server."
            },
            "hostname_root_domain": {
             "type": "string",
             "description": "Root domain of the sending mail server hostname."
            },
            "hostname_tld": {
             "type": "string",
             "description": "TLD of the sending mail server hostname."
            },
            "helo": {
             "type": "string",
             "description": "HELO/EHLO identity used by the sending mail server."
            },
            "helo_root_domain": {
             "type": "string",
             "description": "Root domain of the HELO identity."
            },
            "helo_tld": {
             "type": "string",
             "description": "TLD of the HELO identity."
            }
           }
          },
          "security_details": {
           "type": "object",
           "properties": {
            "spf_status": {
             "type": "string",
             "description": "SPF evaluation result, e.g. pass, fail, softfail, none."
            },
            "dkim_status": {
             "type": "string",
             "description": "DKIM evaluation result, e.g. pass, fail, none."
            },
            "dmarc_status": {
             "type": "string",
             "description": "DMARC evaluation result, e.g. pass, fail, none."
            },
            "compauth_status": {
             "type": "string",
             "description": "Microsoft composite authentication result, if present."
            },
            "dara_status": {
             "type": "string",
             "description": "DARA evaluation result, if present."
            },
            "tls_status": {
             "type": "string",
             "description": "TLS status of the delivery, if reported by the receiving server."
            },
            "dmarc_policy": {
             "type": "string",
             "description": "DMARC policy of the sender domain, e.g. none, quarantine, reject."
            },
            "dmarc_subdomain_policy": {
             "type": "string",
             "description": "DMARC subdomain policy of the sender domain."
            },
            "dmarc_disposition": {
             "type": "string",
             "description": "DMARC disposition applied to the message."
            },
            "total_to_emails": {
             "type": "integer",
             "description": "Number of recipients in the To header."
            },
            "total_cc_emails": {
             "type": "integer",
             "description": "Number of recipients in the Cc header."
            },
            "total_bcc_emails": {
             "type": "integer",
             "description": "Number of recipients in the Bcc header."
            },
            "is_mime_html_only": {
             "type": "boolean",
             "description": "Returns true if the email body is HTML only, without a plain text part."
            },
            "has_undisclosed_recipients": {
             "type": "boolean",
             "description": "Returns true if recipients are undisclosed."
            },
            "is_detected_by_server_antispam": {
             "type": "boolean",
             "description": "Returns true if the receiving server anti-spam flagged the email."
            },
            "sender_is_recipient": {
             "type": "boolean",
             "description": "Returns true if the sender is also a recipient of the email."
            },
            "sender_and_reply_to_different_domain": {
             "type": "boolean",
             "description": "Returns true if sender and Reply-To use different domains."
            },
            "sender_and_reply_to_different_email": {
             "type": "boolean",
             "description": "Returns true if sender and Reply-To use different email addresses."
            },
            "sender_and_message_id_mismatch": {
             "type": "boolean",
             "description": "Returns true if the sender domain does not match the Message-ID domain."
            },
            "sender_rdns_empty": {
             "type": "boolean",
             "description": "Returns true if the sending mail server has no reverse DNS."
            },
            "reply_to_free_email": {
             "type": "boolean",
             "description": "Returns true if the Reply-To address uses a free email provider."
            },
            "has_unsubscribe_link": {
             "type": "boolean",
             "description": "Returns true if the email contains an unsubscribe link."
            },
            "high_value_money_found": {
             "type": "boolean",
             "description": "Returns true if high-value money amounts are mentioned in the email."
            },
            "has_urls_with_ip_host": {
             "type": "boolean",
             "description": "Returns true if the email contains URLs with an IP address as host."
            },
            "is_body_text_empty": {
             "type": "boolean",
             "description": "Returns true if the email body text is empty."
            },
            "sent_outside_business_hours": {
             "type": "boolean",
             "description": "Returns true if the email was sent outside typical business hours."
            },
            "sent_on_night_hours": {
             "type": "boolean",
             "description": "Returns true if the email was sent during night hours."
            },
            "sent_at_time": {
             "type": "string",
             "description": "Time of day the email was sent, e.g. morning, afternoon, night."
            },
            "total_attachments": {
             "type": "integer",
             "description": "Number of attachments found in the email."
            },
            "has_risky_file_extensions": {
             "type": "boolean",
             "description": "Returns true if attachments with risky file extensions are found."
            },
            "has_document_files": {
             "type": "boolean",
             "description": "Returns true if document attachments are found."
            },
            "has_archive_files": {
             "type": "boolean",
             "description": "Returns true if archive attachments are found."
            },
            "has_encrypted_archive_files": {
             "type": "boolean",
             "description": "Returns true if password-protected archive attachments are found."
            },
            "urgency": {
             "type": "string",
             "description": "Urgency level detected from the email content, e.g. low, medium, high."
            }
           }
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "metadata": {
          "message_id": "03302025091220980F708C98$443242D40E@hmlca.com",
          "message_sha256_hash": "cd4e43afb13eef0e381d814ef1ac9d7d91086227131d69477d285d37d411e11b",
          "date_time": "Thu, 04 Sep 2025 03:19:11 +0000 (UTC)",
          "date_time_normalized": "2025-09-04T03:19:11Z"
         },
         "headers": {
          "subject": "Attention: Access Re-activation \"receiver@gmail.com\": 03 September 2025",
          "from_name": "Gmail Message Center",
          "from_email": "rachelle@hmlca.com",
          "return_path": "bounces+45627169-2aff-receiver=gmail.com@em8374.hmlca.com",
          "reply_to": "",
          "delivered_to": "receiver@gmail.com",
          "to": [
           "receiver@gmail.com"
          ],
          "cc": [],
          "bcc": [],
          "content_type": "multipart/alternative",
          "user_agent": "",
          "x_mailer": "",
          "x_library": "",
          "list_unsubscribe": [],
          "received_spf": "pass (google.com: domain of bounces+45627169-2aff-receiver=gmail.com@em8374.hmlca.com designates 50.31.49.42 as permitted sender) client-ip=50.31.49.42;",
          "authentication_results": "mx.google.com; dkim=pass header.i=@hmlca.com header.s=s1 header.b=ZODWUU6W; dkim=pass header.i=@sendgrid.info header.s=smtpapi header.b=TObU1x+p; spf=pass (google.com: domain of bounces+45627169-2aff-receiver=gmail.com@em8374.hmlca.com designates 50.31.49.42 as permitted sender) smtp.mailfrom=\"bounces+45627169-2aff-receiver=gmail.com@em8374.hmlca.com\"",
          "dkim_signatures": [
           {
            "signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=hmlca.com; h=from:subject:content-type:mime-version:date:to:cc:content-type:date: feedback-id:from:subject:to; s=s1; bh=HJ8h3pw+by1D2B7wJ1CO124/fwcuPkzoSMMdSbprGHM=; b=ZODWUU6WGZ+c6NCsyBNIceOX8FH62ZNR8yKgIPKq7O/Qm154ukSRXGy5FHkMeASDXN60 1LOg0VRKKBYXQmtgFTt1a1UFmr5KDE8dK9qLII5iRJ2lyQ7xhVy4qEF3csuCkHO63Uhv3M VEcP8kojPTtQDEC+3p3iIhS6aXOAz4YJ6rSPZga1KyJ/OF9rCBaq925JdAGZw2cnyORkhA ZlWoQIosQI7mIimf28Lj9idAPXXaCIJaf0CeG0/sAfTEexTHm7QrE3kUxZmoKTwyfUB824 QZV2a0YuIu4dKC9mLDkS7sRs+pcAk9dhsRMrUp33JUREhFKBvh9flfVDL4Rx+ocA==",
            "selector": "s1",
            "domain": "hmlca.com",
            "algo": "rsa-sha256",
            "key_type": "rsa",
            "canon": "relaxed/relaxed",
            "hash": "HJ8h3pw+by1D2B7wJ1CO124/fwcuPkzoSMMdSbprGHM=",
            "key_bits": 2048,
            "dnssec": false
           },
           {
            "signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=sendgrid.info; h=from:subject:content-type:mime-version:date:to:cc:content-type:date: feedback-id:from:subject:to; s=smtpapi; bh=HJ8h3pw+by1D2B7wJ1CO124/fwcuPkzoSMMdSbprGHM=; b=TObU1x+puLv0hicu+Mpsh0MdJOZZ53xPGSytO8RVzZxUkCerEHT7xodzIiwjVTeDiFZ8 AU09HqWfE+Czdox4CpFTB0qBd0xENHcM0rS3P2SQbgWKWA2vaZ6dMm2MIAZVxOf49T20Zf vwSCIPHuPqV/dF2mTM7reRxF11XJP6428=",
            "selector": "smtpapi",
            "domain": "sendgrid.info",
            "algo": "rsa-sha256",
            "key_type": "rsa",
            "canon": "relaxed/relaxed",
            "hash": "HJ8h3pw+by1D2B7wJ1CO124/fwcuPkzoSMMdSbprGHM=",
            "key_bits": 1024,
            "dnssec": false
           }
          ]
         },
         "body": {
          "body_text": "Webmail\n\nDear User, receiver@gmail.com\n\nOur system indicates that your password has expired as part of our regular security maintenance. To continue accessing your webmail account without interruption, please take a moment to verify or update your password.\n\nKeep or Update Password https://u45627169.ct.sendgrid.net/ls/click?upn=u001.ilzQdWVrM538qTJ1Qrct2U7gPpD0uoiQECwlDuMspitwulZl7U-2FY3vakOIItSIS1XybaLMtdZ8kaccaNGzDgJl-2BToMxJ70rUoLmY-2BOC8PLL0c-2BbFqtEXLRZwr1fTYBGE4GK8_s0lTyPdoyuzn-2FJTE9fjR8gd4LnXMu4OKG3YpbxosU77i-2FfG4C2MUtEIoCJlrCv4kYhNLpFkGAbHAHEur7tKY3BDYlNZ-2BPfxo0M8IB5fyCQzRQA3YpmmqcpZY3xE1ZWT8ippFzgvcPAn1RCDWmrJUM-2B-2BMsAKXQT8fMw1snmBQJtoed9kNb8hvoZBHFaP3MV0uwsrhx-2FTGxvGGACZrGEwN6g-3D-3D\n\n\u00a9 2025 Gmail Webmail. All rights reserved.\n\nThis email was sent to you as a registered user for Gmail Webmail services."
         },
         "attachments": {
          "files": [
           {
            "name": "invoice.zip",
            "extension": ".zip",
            "is_risky_extension": false,
            "content_type": "application/zip",
            "size": 4042,
            "md5_hash": "d7b44bedb42ca39681c32cda0678af11",
            "is_inline": false,
            "content_id": "",
            "disposition": "attachment",
            "cid_referenced": false,
            "is_document": false,
            "is_archive": true,
            "is_archive_encrypted": false,
            "extracted_files": [
             {
              "name": "Invoice_N10092025.bat",
              "extension": ".bat",
              "is_risky_extension": true,
              "is_document": false,
              "is_archive": false,
              "is_archive_encrypted": false,
              "last_modified_at": "2025-10-23T21:57:18Z",
              "size": 10494,
              "md5_hash": "10d47269e0872ef218701703722d67d9"
             }
            ]
           }
          ],
          "file_extensions": [
           ".zip",
           ".bat"
          ],
          "md5_hashes": [
           "d7b44bedb42ca39681c32cda0678af11",
           "10d47269e0872ef218701703722d67d9"
          ]
         },
         "ioc": {
          "urls": {
           "urls": [
            "https://u45627169.ct.sendgrid.net/ls/click?upn=u001.ilzQdWVrM538qTJ1Qrct2U7gPpD0uoiQECwlDuMspitwulZl7U-2FY3vakOIItSIS1XybaLMtdZ8kaccaNGzDgJl-2BToMxJ70rUoLmY-2BOC8PLL0c-2BbFqtEXLRZwr1fTYBGE4GK8_s0lTyPdoyuzn-2FJTE9fjR8gd4LnXMu4OKG3YpbxosU77i-2FfG4C2MUtEIoCJlrCv4kYhNLpFkGAbHAHEur7tKY3BDYlNZ-2BPfxo0M8IB5fyCQzRQA3YpmmqcpZY3xE1ZWT8ippFzgvcPAn1RCDWmrJUM-2B-2BMsAKXQT8fMw1snmBQJtoed9kNb8hvoZBHFaP3MV0uwsrhx-2FTGxvGGACZrGEwN6g-3D-3D",
            "https://u45627169.ct.sendgrid.net/ls/click?upn=u001.ilzQdWVrM538qTJ1Qrct2U7gPpD0uoiQECwlDuMspitwulZl7U-2FY3vakOIItSIS1XybaLMtdZ8kaccaNGzDgJl-2BToMxJ70rUoLmY-2BOC8PLL0c-2BbFqtEXLRZwr1fTYBGEss7q_s0lTyPdoyuzn-2FJTE9fjR8gd4LnXMu4OKG3YpbxosU77i-2FfG4C2MUtEIoCJlrCv4kYhNLpFkGAbHAHEur7tKY3F-2FD5IvO2YiTDo-2FzLySkdPDOf5vAvMnJ-2BOrn7sm3lqiymM-2FOaZ4HgVbc7zC0ofWQJS39zRgu577y715r7QFnLA7WRSM8BjNM9dxCWxewBaVs1C5v32uEs6TuG4yZ4VATsg-3D-3D",
            "https://u45627169.ct.sendgrid.net/wf/open?upn=u001.XFGmjoWdSYLGbF2-2B-2B1O-2F8nE80NrNtyU8ZMdTu2BP-2FZRTyD4PEuraAR9MERxO5qS-2FDx2o-2BBEM7SMpl99PzpPvLgvkmWCq7tYo8dnfKyMkLo-2Bhe8sfZ34j-2BF6DXfFpV8wMX6JIvbuqLpoS8iahL-2FvGO7bSCoH37gpRuT1HchqBaZKb3tBsuZKMPEr4fLjwpt7USWnFswkKA8yfCAOlSCsitDkvS411Nmxy1dzGYibBxNY-3D"
           ],
           "redirects": [
            "https://vvtrt.b-cdn.net/cubggg%20(2)%20-%20Copy.html"
           ],
           "direct_downloads": [],
           "with_ip_host": [],
           "domains": [
            "u45627169.ct.sendgrid.net",
            "vvtrt.b-cdn.net"
           ],
           "root_domains": [
            "sendgrid.net",
            "b-cdn.net"
           ],
           "tlds": [
            "net"
           ]
          },
          "emails": {
           "emails": [
            "receiver@gmail.com",
            "rachelle@hmlca.com"
           ],
           "domains": [
            "gmail.com",
            "hmlca.com"
           ],
           "root_domains": [
            "gmail.com",
            "hmlca.com"
           ],
           "tlds": [
            "com"
           ]
          },
          "received_from": {
           "domains": [
            "s.pnkfpknx.outbound-mail.sendgrid.net",
            "mx.google.com",
            "whm002.searchcontrol.com"
           ],
           "root_domains": [
            "sendgrid.net",
            "google.com",
            "searchcontrol.com"
           ],
           "tlds": [
            "net",
            "com"
           ]
          },
          "dkim_domains": {
           "domains": [
            "hmlca.com",
            "sendgrid.info"
           ],
           "root_domains": [
            "hmlca.com",
            "sendgrid.info"
           ],
           "tlds": [
            "com",
            "info"
           ]
          },
          "bitcoin_addresses": [],
          "phone_numbers": []
         },
         "sender_details": {
          "email": "rachelle@hmlca.com",
          "domain": "hmlca.com",
          "root_domain": "hmlca.com",
          "tld": "com",
          "ip_address": "50.31.49.42",
          "hostname": "s.pnkfpknx.outbound-mail.sendgrid.net",
          "hostname_root_domain": "sendgrid.net",
          "hostname_tld": "net",
          "helo": "",
          "helo_root_domain": "",
          "helo_tld": ""
         },
         "security_details": {
          "spf_status": "pass",
          "dkim_status": "pass",
          "dmarc_status": "",
          "compauth_status": "",
          "dara_status": "",
          "tls_status": "",
          "dmarc_policy": "",
          "dmarc_subdomain_policy": "",
          "dmarc_disposition": "",
          "total_to_emails": 1,
          "total_cc_emails": 0,
          "total_bcc_emails": 0,
          "is_mime_html_only": false,
          "has_undisclosed_recipients": false,
          "is_detected_by_server_antispam": false,
          "sender_is_recipient": false,
          "sender_and_reply_to_different_domain": false,
          "sender_and_reply_to_different_email": false,
          "sender_and_message_id_mismatch": false,
          "sender_rdns_empty": false,
          "reply_to_free_email": false,
          "has_unsubscribe_link": false,
          "high_value_money_found": false,
          "has_urls_with_ip_host": false,
          "is_body_text_empty": false,
          "sent_outside_business_hours": true,
          "sent_on_night_hours": true,
          "sent_at_time": "3:19 AM",
          "total_attachments": 1,
          "has_risky_file_extensions": true,
          "has_document_files": false,
          "has_archive_files": true,
          "has_encrypted_archive_files": false,
          "urgency": "high"
         },
         "elapsed_ms": 551
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 2,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "eml_base64": {
          "type": "string",
          "description": "Base64-encoded EML file content (max 5 MB)."
         }
        },
        "required": [
         "eml_base64"
        ]
       },
       "example": {
        "eml_base64": "RW5jb2RlIGFuZCBkZWNv..."
       }
      }
     }
    }
   }
  },
  "/geo-request": {
   "post": {
    "operationId": "geo_request",
    "tags": [
     "Geo Request API"
    ],
    "summary": "Geo Request API",
    "description": "Perform an HTTP request to a URL from multiple geographic locations (such as Canada and Germany) and get the response details for each country.\n\nConsumes 5 credits per successful request (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/geo-request-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/geo-request-api/",
     "description": "Geo Request API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "url": {
           "type": "string",
           "description": "URL submitted for the geo request."
          },
          "locations": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "continent_code": {
              "type": "string",
              "description": "Continent code (e.g. NA) of the requesting location."
             },
             "continent_name": {
              "type": "string",
              "description": "Continent name of the requesting location."
             },
             "country_code": {
              "type": "string",
              "description": "Country code (e.g. US) of the requesting location."
             },
             "country_name": {
              "type": "string",
              "description": "Country name of the requesting location."
             },
             "city_name": {
              "type": "string",
              "description": "City name of the requesting location."
             },
             "request_output": {
              "type": "object",
              "properties": {
               "status_code": {
                "type": "integer",
                "description": "HTTP status code returned by the server."
               },
               "status_message": {
                "type": "string",
                "description": "HTTP status message returned by the server, e.g. 302 Found."
               },
               "response_headers": {
                "type": "object",
                "properties": {
                 "age": {
                  "type": "array",
                  "items": {
                   "type": "string"
                  }
                 },
                 "cache-control": {
                  "type": "array",
                  "items": {
                   "type": "string"
                  }
                 },
                 "connection": {
                  "type": "array",
                  "items": {
                   "type": "string"
                  }
                 },
                 "content-language": {
                  "type": "array",
                  "items": {
                   "type": "string"
                  }
                 },
                 "content-length": {
                  "type": "array",
                  "items": {
                   "type": "string"
                  }
                 },
                 "content-security-policy": {
                  "type": "array",
                  "items": {
                   "type": "string"
                  }
                 },
                 "content-type": {
                  "type": "array",
                  "items": {
                   "type": "string"
                  }
                 },
                 "date": {
                  "type": "array",
                  "items": {
                   "type": "string"
                  }
                 },
                 "location": {
                  "type": "array",
                  "items": {
                   "type": "string"
                  }
                 },
                 "referrer-policy": {
                  "type": "array",
                  "items": {
                   "type": "string"
                  }
                 },
                 "server": {
                  "type": "array",
                  "items": {
                   "type": "string"
                  }
                 },
                 "set-cookie": {
                  "type": "array",
                  "items": {
                   "type": "string"
                  }
                 },
                 "strict-transport-security": {
                  "type": "array",
                  "items": {
                   "type": "string"
                  }
                 },
                 "x-content-type-options": {
                  "type": "array",
                  "items": {
                   "type": "string"
                  }
                 },
                 "x-frame-options": {
                  "type": "array",
                  "items": {
                   "type": "string"
                  }
                 },
                 "x-xss-protection": {
                  "type": "array",
                  "items": {
                   "type": "string"
                  }
                 }
                },
                "description": "HTTP response headers returned by the server, keyed by lowercase header name."
               },
               "redirects_to": {
                "type": "string",
                "description": "URL the server redirects to, if any."
               },
               "timings": {
                "type": "object",
                "properties": {
                 "dns_ms": {
                  "type": "integer",
                  "description": "Time spent on DNS resolution in milliseconds."
                 },
                 "connect_ms": {
                  "type": "integer",
                  "description": "Time spent on TCP connection in milliseconds."
                 },
                 "tls_ms": {
                  "type": "integer",
                  "description": "Time spent on TLS handshake in milliseconds."
                 },
                 "ttfb_ms": {
                  "type": "integer",
                  "description": "Time to first byte in milliseconds."
                 },
                 "total_ms": {
                  "type": "integer",
                  "description": "Total request time in milliseconds."
                 }
                }
               },
               "remote_addr": {
                "type": "string",
                "description": "IP address of the server that handled the request."
               },
               "network": {
                "type": "string",
                "description": "Network protocol used for the connection, e.g. tcp."
               },
               "http_version": {
                "type": "string",
                "description": "HTTP version used for the request, e.g. HTTP/2.0."
               },
               "tls_version": {
                "type": "string",
                "description": "TLS version used for the connection, e.g. TLS 1.3."
               },
               "cipher_suite": {
                "type": "string",
                "description": "TLS cipher suite used for the connection."
               },
               "error_message": {
                "type": "string",
                "description": "Error message if the request from this location failed."
               },
               "elapsed_ms": {
                "type": "integer",
                "description": "Time taken by the request from this location, in milliseconds."
               }
              }
             },
             "error": {
              "type": "string",
              "description": "Error message if the check from this location could not be performed."
             }
            }
           },
           "description": "List of geographic locations with the HTTP request output from each location."
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "url": "https://www.yahoo.com/",
         "locations": [
          {
           "continent_code": "NA",
           "continent_name": "North America",
           "country_code": "CA",
           "country_name": "Canada",
           "city_name": "Toronto",
           "request_output": {
            "status_code": 302,
            "status_message": "302 Found",
            "response_headers": {
             "age": [
              "0"
             ],
             "cache-control": [
              "no-store"
             ],
             "connection": [
              "keep-alive"
             ],
             "content-language": [
              "en"
             ],
             "content-length": [
              "17"
             ],
             "content-security-policy": [
              "frame-ancestors 'self' https://*.builtbygirls.com https://*.rivals.com https://*.engadget.com https://*.intheknow.com https://*.autoblog.com https://*.techcrunch.com https://*.yahoo.com https://*.aol.com https://*.huffingtonpost.com https://*.oath.com https://*.search.yahoo.com https://*.pnr.ouryahoo.com https://pnr.ouryahoo.com https://*.search.aol.com https://*.search.huffpost.com https://*.onesearch.com https://*.verizonmedia.com https://*.publishing.oath.com https://*.autoblog.com; sandbox allow-forms allow-same-origin allow-scripts allow-popups allow-popups-to-escape-sandbox allow-presentation; report-uri https://csp.yahoo.com/beacon/csp?src=ats&site=frontpage&region=US&lang=en-US&device=desktop&yrid=2a1aachkl2j7m&partner=;"
             ],
             "content-type": [
              "text/html"
             ],
             "date": [
              "Sun, 28 Dec 2025 15:29:58 GMT"
             ],
             "location": [
              "https://ca.yahoo.com/?p=us"
             ],
             "referrer-policy": [
              "no-referrer-when-downgrade"
             ],
             "server": [
              "ATS"
             ],
             "set-cookie": [
              "RRC=st=1766935798.3485&cnt=1; expires=Sun, 28-Dec-2025 15:30:28 GMT; path=/; domain=.www.yahoo.com; HttpOnly"
             ],
             "strict-transport-security": [
              "max-age=31536000"
             ],
             "x-content-type-options": [
              "nosniff"
             ],
             "x-frame-options": [
              "SAMEORIGIN"
             ],
             "x-xss-protection": [
              "1; mode=block"
             ]
            },
            "redirects_to": "https://ca.yahoo.com/?p=us",
            "timings": {
             "dns_ms": 2,
             "connect_ms": 6,
             "tls_ms": 6,
             "ttfb_ms": 37,
             "total_ms": 52
            },
            "remote_addr": "66.218.84.42",
            "network": "tcp4",
            "http_version": "HTTP/1.1",
            "tls_version": "TLS1.3",
            "cipher_suite": "TLS_AES_128_GCM_SHA256",
            "error_message": "",
            "elapsed_ms": 91
           },
           "error": ""
          },
          {
           "continent_code": "EU",
           "continent_name": "Europe",
           "country_code": "DE",
           "country_name": "Germany",
           "city_name": "Frankfurt",
           "request_output": {
            "status_code": 302,
            "status_message": "302 Found",
            "response_headers": {
             "age": [
              "0"
             ],
             "cache-control": [
              "no-store"
             ],
             "connection": [
              "keep-alive"
             ],
             "content-language": [
              "en"
             ],
             "content-length": [
              "17"
             ],
             "content-security-policy": [
              "frame-ancestors 'self' https://*.builtbygirls.com https://*.rivals.com https://*.engadget.com https://*.intheknow.com https://*.autoblog.com https://*.techcrunch.com https://*.yahoo.com https://*.aol.com https://*.huffingtonpost.com https://*.oath.com https://*.search.yahoo.com https://*.pnr.ouryahoo.com https://pnr.ouryahoo.com https://*.search.aol.com https://*.search.huffpost.com https://*.onesearch.com https://*.verizonmedia.com https://*.publishing.oath.com https://*.autoblog.com; sandbox allow-forms allow-same-origin allow-scripts allow-popups allow-popups-to-escape-sandbox allow-presentation; report-uri https://csp.yahoo.com/beacon/csp?src=ats&site=frontpage&region=US&lang=en-US&device=desktop&yrid=39iu909kl2j7m&partner=;"
             ],
             "content-type": [
              "text/html"
             ],
             "date": [
              "Sun, 28 Dec 2025 15:29:58 GMT"
             ],
             "location": [
              "https://de.yahoo.com/?p=us"
             ],
             "referrer-policy": [
              "no-referrer-when-downgrade"
             ],
             "server": [
              "ATS"
             ],
             "set-cookie": [
              "RRC=st=1766935798.5121&cnt=1; expires=Sun, 28-Dec-2025 15:30:28 GMT; path=/; domain=.www.yahoo.com; HttpOnly"
             ],
             "strict-transport-security": [
              "max-age=31536000"
             ],
             "x-content-type-options": [
              "nosniff"
             ],
             "x-frame-options": [
              "SAMEORIGIN"
             ],
             "x-xss-protection": [
              "1; mode=block"
             ]
            },
            "redirects_to": "https://de.yahoo.com/?p=us",
            "timings": {
             "dns_ms": 6,
             "connect_ms": 1,
             "tls_ms": 8,
             "ttfb_ms": 89,
             "total_ms": 100
            },
            "remote_addr": "87.248.119.252",
            "network": "tcp4",
            "http_version": "HTTP/1.1",
            "tls_version": "TLS1.3",
            "cipher_suite": "TLS_AES_128_GCM_SHA256",
            "error_message": "",
            "elapsed_ms": 100
           },
           "error": ""
          }
         ],
         "elapsed_ms": 1223
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 5,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "url": {
          "type": "string",
          "description": "URL to submit, e.g. https://www.yahoo.com/."
         },
         "use_ipv6": {
          "type": "boolean",
          "description": "Set to true to use IPv6 for web requests.",
          "default": false
         }
        },
        "required": [
         "url"
        ]
       },
       "example": {
        "url": "https://www.yahoo.com/"
       }
      }
     }
    }
   }
  },
  "/html-to-pdf": {
   "post": {
    "operationId": "html_to_pdf",
    "tags": [
     "HTML to PDF API"
    ],
    "summary": "HTML to PDF API",
    "description": "Convert custom HTML code, such as an invoice or a newsletter template, into a PDF.\n\nConsumes 20 credits per successful request (non-200 responses never consume credits). Can take up to 150 seconds; set your client timeout accordingly. Full reference: https://docs.apivoid.com/html-to-pdf-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/html-to-pdf-api/",
     "description": "HTML to PDF API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "rendered_file": {
           "type": "object",
           "properties": {
            "format": {
             "type": "string",
             "description": "Format of the rendered file, e.g. PDF."
            },
            "date_time_utc": {
             "type": "string",
             "description": "Date and time (UTC) of when the file was rendered."
            },
            "base64_file": {
             "type": "string",
             "description": "The rendered PDF file encoded in base64."
            },
            "file_size_readable": {
             "type": "string",
             "description": "File size in human-readable format, e.g. 14.73 KB."
            },
            "file_size_bytes": {
             "type": "integer",
             "description": "File size in bytes."
            }
           }
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "rendered_file": {
          "format": "PDF",
          "date_time_utc": "2024-11-29 19:05:01",
          "base64_file": "JVBERi0xLjcKJeLjz9MKMSAwIG9iago8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFI+PgplbmRvYmoKMiAwIG9iago8PC9U...",
          "file_size_readable": "14.73 KB",
          "file_size_bytes": 15080
         },
         "elapsed_ms": 5485
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 20,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "html_base64": {
          "type": "string",
          "description": "HTML data encoded in base64."
         },
         "pdf_papersize_width": {
          "type": "integer",
          "description": "Change PDF paper width in pixels (max 5000).",
          "default": 0
         },
         "pdf_papersize_height": {
          "type": "integer",
          "description": "Change PDF paper height in pixels (max 10000).",
          "default": 0
         },
         "pdf_format": {
          "type": "string",
          "description": "Change PDF format, can be Letter, Legal, Tabloid, Ledger, A0, A1, A2, A3, A4, A5, A6.",
          "default": "A4"
         },
         "pdf_margin": {
          "type": "integer",
          "description": "Change PDF margin.",
          "default": 0
         },
         "pdf_show_background": {
          "type": "boolean",
          "description": "Show the background of the web page.",
          "default": true
         },
         "pdf_landscape": {
          "type": "boolean",
          "description": "Change the PDF orientation to landscape.",
          "default": false
         },
         "pdf_page_ranges": {
          "type": "string",
          "description": "Select page ranges, can be 1 or 1-3 (for example)."
         },
         "pdf_scale": {
          "type": "number",
          "description": "Scale the PDF, must be between 0.1 and 2."
         },
         "pdf_one_page": {
          "type": "boolean",
          "description": "Try to fit the web page into a single PDF page.",
          "default": false
         }
        },
        "required": [
         "html_base64"
        ]
       },
       "example": {
        "html_base64": "PGh0bWw+PGJvZHk+PGgxPlRlc3RpbmcgSFRNTCB0byBQREYgQVBJPC9oMT48L2JvZHk+PC9odG1sPg=="
       }
      }
     }
    }
   }
  },
  "/html-to-png": {
   "post": {
    "operationId": "html_to_png",
    "tags": [
     "HTML to PNG API"
    ],
    "summary": "HTML to PNG API",
    "description": "Convert custom HTML code into a PNG image rendered by a real browser.\n\nConsumes 20 credits per successful request (non-200 responses never consume credits). Can take up to 150 seconds; set your client timeout accordingly. Full reference: https://docs.apivoid.com/html-to-png-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/html-to-png-api/",
     "description": "HTML to PNG API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "rendered_file": {
           "type": "object",
           "properties": {
            "format": {
             "type": "string",
             "description": "Format of the rendered file, e.g. PNG."
            },
            "date_time_utc": {
             "type": "string",
             "description": "Date and time (UTC) of when the file was rendered."
            },
            "base64_file": {
             "type": "string",
             "description": "The rendered PNG image encoded in base64."
            },
            "image_width": {
             "type": "integer",
             "description": "Width of the rendered image in pixels."
            },
            "image_height": {
             "type": "integer",
             "description": "Height of the rendered image in pixels."
            },
            "file_size_readable": {
             "type": "string",
             "description": "File size in human-readable format, e.g. 14.73 KB."
            },
            "file_size_bytes": {
             "type": "integer",
             "description": "File size in bytes."
            }
           }
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "rendered_file": {
          "format": "PNG",
          "date_time_utc": "2024-11-29 19:05:01",
          "base64_file": "iVBORw0KGgoAAAANSUhEUgAAB4AAAAQ4CAIAAABnsVYUAAAAAXNSR0IArs4c6QAAIABJREFUeJzs3WmYVOWd8OFqa...",
          "image_width": 1920,
          "image_height": 1080,
          "file_size_readable": "14.73 KB",
          "file_size_bytes": 15080
         },
         "elapsed_ms": 5485
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 20,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "html_base64": {
          "type": "string",
          "description": "HTML data encoded in base64."
         }
        },
        "required": [
         "html_base64"
        ]
       },
       "example": {
        "html_base64": "PGh0bWw+PGJvZHk+PGgxPlRlc3RpbmcgSFRNTCB0byBQTkcgQVBJPC9oMT48L2JvZHk+PC9odG1sPg=="
       }
      }
     }
    }
   }
  },
  "/http-tracker": {
   "post": {
    "operationId": "http_tracker",
    "tags": [
     "HTTP Tracker API"
    ],
    "summary": "HTTP Tracker API",
    "description": "Track all HTTP requests made by a URL when loaded in a real browser: requests to third-party domains, IP addresses contacted, and response details.\n\nConsumes 20 credits per successful request (non-200 responses never consume credits). Can take up to 150 seconds; set your client timeout accordingly. Full reference: https://docs.apivoid.com/http-tracker-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/http-tracker-api/",
     "description": "HTTP Tracker API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "url": {
           "type": "string",
           "description": "URL submitted for HTTP requests tracking."
          },
          "http_requests": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "url": {
              "type": "string",
              "description": "URL of the requested resource."
             },
             "status_code": {
              "type": "integer",
              "description": "HTTP status code returned for the request."
             },
             "content_type": {
              "type": "string",
              "description": "Content type of the requested resource, e.g. text/html."
             },
             "content_length": {
              "type": "integer",
              "description": "Size of the requested resource in bytes."
             },
             "elapsed_ms": {
              "type": "integer",
              "description": "Time taken by the request in milliseconds."
             },
             "ip_address": {
              "type": "string",
              "description": "IP address of the server that served the resource."
             }
            }
           },
           "description": "List of HTTP requests made while loading the page."
          },
          "hosts_list": {
           "type": "array",
           "items": {
            "type": "string"
           },
           "description": "List of unique hosts contacted while loading the page."
          },
          "ips_list": {
           "type": "array",
           "items": {
            "type": "string"
           },
           "description": "List of unique IP addresses contacted while loading the page."
          },
          "stats": {
           "type": "object",
           "properties": {
            "total_requests": {
             "type": "integer",
             "description": "Total number of HTTP requests made."
            },
            "unsecure_requests": {
             "type": "integer",
             "description": "Number of requests made over unsecure HTTP."
            },
            "same_origin_requests": {
             "type": "integer",
             "description": "Number of requests made to the same origin."
            },
            "cross_origin_requests": {
             "type": "integer",
             "description": "Number of requests made to a different origin."
            },
            "unique_hosts": {
             "type": "integer",
             "description": "Number of unique hosts contacted."
            },
            "external_hosts": {
             "type": "integer",
             "description": "Number of external hosts contacted."
            },
            "unique_ips": {
             "type": "integer",
             "description": "Number of unique IP addresses contacted."
            },
            "2xx_status_codes": {
             "type": "integer",
             "description": "Number of requests that returned a 2xx status code."
            },
            "3xx_status_codes": {
             "type": "integer",
             "description": "Number of requests that returned a 3xx status code."
            },
            "4xx_status_codes": {
             "type": "integer",
             "description": "Number of requests that returned a 4xx status code."
            },
            "5xx_status_codes": {
             "type": "integer",
             "description": "Number of requests that returned a 5xx status code."
            },
            "transferred_bytes": {
             "type": "integer",
             "description": "Total bytes transferred while loading the page."
            },
            "html_files": {
             "type": "integer",
             "description": "Number of HTML files loaded."
            },
            "html_files_bytes": {
             "type": "integer",
             "description": "Total bytes of HTML files loaded."
            },
            "image_files": {
             "type": "integer",
             "description": "Number of image files loaded."
            },
            "image_files_bytes": {
             "type": "integer",
             "description": "Total bytes of image files loaded."
            },
            "javascript_files": {
             "type": "integer",
             "description": "Number of JavaScript files loaded."
            },
            "javascript_files_bytes": {
             "type": "integer",
             "description": "Total bytes of JavaScript files loaded."
            },
            "css_files": {
             "type": "integer",
             "description": "Number of CSS files loaded."
            },
            "css_files_bytes": {
             "type": "integer",
             "description": "Total bytes of CSS files loaded."
            },
            "font_files": {
             "type": "integer",
             "description": "Number of font files loaded."
            },
            "font_files_bytes": {
             "type": "integer",
             "description": "Total bytes of font files loaded."
            }
           }
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "url": "https://www.apivoid.com/",
         "http_requests": [
          {
           "url": "https://www.apivoid.com/",
           "status_code": 200,
           "content_type": "text/html",
           "content_length": 30266,
           "elapsed_ms": 199,
           "ip_address": "159.69.124.48"
          },
          {
           "url": "https://www.apivoid.com/styles/main.css",
           "status_code": 200,
           "content_type": "text/css",
           "content_length": 192605,
           "elapsed_ms": 87,
           "ip_address": "159.69.124.48"
          },
          {
           "url": "https://www.apivoid.com/images/email-support.png",
           "status_code": 200,
           "content_type": "image/png",
           "content_length": 867,
           "elapsed_ms": 100,
           "ip_address": "159.69.124.48"
          },
          {
           "url": "https://www.apivoid.com/scripts/jquery-3.1.1.min.js",
           "status_code": 200,
           "content_type": "application/javascript",
           "content_length": 86709,
           "elapsed_ms": 107,
           "ip_address": "159.69.124.48"
          },
          {
           "url": "https://cdnjs.cloudflare.com/ajax/libs/flag-icon-css/3.5.0/css/flag-icon.min.css",
           "status_code": 200,
           "content_type": "text/css",
           "content_length": 1482,
           "elapsed_ms": 157,
           "ip_address": "104.17.25.14"
          },
          {
           "url": "https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css",
           "status_code": 200,
           "content_type": "text/css",
           "content_length": 31000,
           "elapsed_ms": 172,
           "ip_address": "104.18.11.207"
          }
         ],
         "hosts_list": [
          "cdn.usefathom.com",
          "cdnjs.cloudflare.com",
          "fonts.googleapis.com",
          "maxcdn.bootstrapcdn.com",
          "www.apivoid.com",
          "www.google.com",
          "www.gstatic.com"
         ],
         "ips_list": [
          "104.17.25.14",
          "104.18.11.207",
          "142.250.185.227",
          "142.250.185.74",
          "142.250.186.164",
          "159.69.124.48",
          "169.150.247.37"
         ],
         "stats": {
          "total_requests": 27,
          "unsecure_requests": 0,
          "same_origin_requests": 16,
          "cross_origin_requests": 11,
          "unique_hosts": 7,
          "external_hosts": 6,
          "unique_ips": 7,
          "2xx_status_codes": 27,
          "3xx_status_codes": 0,
          "4xx_status_codes": 0,
          "5xx_status_codes": 0,
          "transferred_bytes": 926446,
          "html_files": 1,
          "html_files_bytes": 30266,
          "image_files": 8,
          "image_files_bytes": 63463,
          "javascript_files": 11,
          "javascript_files_bytes": 525055,
          "css_files": 5,
          "css_files_bytes": 230459,
          "font_files": 1,
          "font_files_bytes": 77160
         },
         "elapsed_ms": 1828
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 20,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "url": {
          "type": "string",
          "description": "URL to submit, e.g. https://www.apivoid.com/."
         },
         "user_agent": {
          "type": "string",
          "description": "Can be desktop (default, a random desktop user agent) or mobile.",
          "default": "desktop"
         },
         "accept_language": {
          "type": "string",
          "description": "Change the Accept-Language HTTP header, format like en-US.",
          "default": "en-US"
         }
        },
        "required": [
         "url"
        ]
       },
       "example": {
        "url": "https://www.apivoid.com/"
       }
      }
     }
    }
   }
  },
  "/http3-status": {
   "post": {
    "operationId": "http3_status",
    "tags": [
     "HTTP3 Status API"
    ],
    "summary": "HTTP3 Status API",
    "description": "Check if a website supports the HTTP/3 protocol, with details about the negotiated protocol and Alt-Svc header.\n\nConsumes 1 credit per successful request (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/http3-status-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/http3-status-api/",
     "description": "HTTP3 Status API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "url": {
           "type": "string",
           "description": "URL submitted for the HTTP/3 check."
          },
          "status_code": {
           "type": "integer",
           "description": "HTTP status code returned by the server."
          },
          "status_message": {
           "type": "string",
           "description": "HTTP status message returned by the server, e.g. OK."
          },
          "http3_supported": {
           "type": "boolean",
           "description": "Returns true if the server supports HTTP/3."
          },
          "protocol": {
           "type": "string",
           "description": "HTTP protocol version used for the response, e.g. HTTP/3.0."
          },
          "response_headers": {
           "type": "object",
           "properties": {
            "accept-ch": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "alt-svc": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "cache-control": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "content-security-policy-report-only": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "content-type": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "cross-origin-opener-policy": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "date": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "expires": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "p3p": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "report-to": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "server": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "set-cookie": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "x-frame-options": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "x-xss-protection": {
             "type": "array",
             "items": {
              "type": "string"
             }
            }
           },
           "description": "HTTP response headers returned by the server, keyed by lowercase header name."
          },
          "alpn_identifiers": {
           "type": "array",
           "items": {
            "type": "string"
           },
           "description": "ALPN identifiers advertised by the server, e.g. h3, h3-29."
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "url": "https://www.google.com/",
         "status_code": 200,
         "status_message": "OK",
         "http3_supported": true,
         "protocol": "HTTP/3.0",
         "response_headers": {
          "accept-ch": [
           "Sec-CH-Prefers-Color-Scheme"
          ],
          "alt-svc": [
           "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"
          ],
          "cache-control": [
           "private, max-age=0"
          ],
          "content-security-policy-report-only": [
           "object-src 'none';base-uri 'self';script-src 'nonce-B0aSTNNTysfKPA7d8BAOdA' 'strict-dynamic' 'report-sample' 'unsafe-eval' 'unsafe-inline' https: http:;report-uri https://csp.withgoogle.com/csp/gws/other-hp"
          ],
          "content-type": [
           "text/html; charset=UTF-8"
          ],
          "cross-origin-opener-policy": [
           "same-origin-allow-popups; report-to=\"gws\""
          ],
          "date": [
           "Fri, 03 Oct 2025 15:35:55 GMT"
          ],
          "expires": [
           "-1"
          ],
          "p3p": [
           "CP=\"This is not a P3P policy! See g.co/p3phelp for more info.\""
          ],
          "report-to": [
           "{\"group\":\"gws\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/gws/other\"}]}"
          ],
          "server": [
           "gws"
          ],
          "set-cookie": [
           "AEC=AaJma5uUxjd8HNsGvWJdYQa7DYFnfSWk9yZxU6KnTGd6CMJfoADGMaryeWo; expires=Wed, 01-Apr-2026 15:35:55 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=lax",
           "NID=525=gXVZloTgRJJTjXftI0Red_LcofkT_At9KtmE4YgmpyUjYPNvkhzIxbkNyH4BYU6u1VSt_z9O6yKXn3XPpctAdAW0mW7tICtkgub0tKrB8WtBhYxt2zAmbnzlkP7EHCms07uFEcSoO1on0i8C9K-cMqd0QvjuBC39u6sp9LCa-i4Eg2EHZmNGeARlKf5vfhqpliVCP6MFi_j7Bn8ND3AkEUg; expires=Sat, 04-Apr-2026 15:35:55 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=none"
          ],
          "x-frame-options": [
           "SAMEORIGIN"
          ],
          "x-xss-protection": [
           "0"
          ]
         },
         "alpn_identifiers": [
          "h3",
          "h3-29"
         ],
         "elapsed_ms": 90
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 1,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "url": {
          "type": "string",
          "description": "URL to submit, e.g. https://www.google.com/."
         }
        },
        "required": [
         "url"
        ]
       },
       "example": {
        "url": "https://www.google.com/"
       }
      }
     }
    }
   }
  },
  "/ip-reputation": {
   "post": {
    "operationId": "ip_reputation",
    "tags": [
     "IP Reputation API"
    ],
    "summary": "IP Reputation API",
    "description": "Check the reputation of an IPv4 or IPv6 address using multiple IP blacklist services, with detection details, risk score and IP information.\n\nConsumes 1 credit per successful request (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/ip-reputation-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/ip-reputation-api/",
     "description": "IP Reputation API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "ip": {
           "type": "string",
           "description": "IP address submitted for scanning."
          },
          "version": {
           "type": "string",
           "description": "IP version of the submitted address: IPv4 or IPv6."
          },
          "blacklists": {
           "type": "object",
           "properties": {
            "engines": {
             "type": "object",
             "additionalProperties": {
              "type": "object",
              "properties": {
               "name": {
                "type": "string",
                "description": "Name of the scanning engine."
               },
               "detected": {
                "type": "boolean",
                "description": "Returns true if this engine flagged the submitted IP address."
               },
               "reference": {
                "type": "string",
                "description": "Link to the engine's website or listing details."
               },
               "elapsed_ms": {
                "type": "integer",
                "description": "Time taken by this engine to complete its check, in milliseconds."
               }
              }
             },
             "description": "List of scanning engines with detection status and reference link."
            },
            "detections": {
             "type": "integer",
             "description": "Number of scanning engines that detected the submitted IP."
            },
            "engines_count": {
             "type": "integer",
             "description": "Number of scanning engines used to scan the IP."
            },
            "detection_rate": {
             "type": "string",
             "description": "Percentage of engines that detected the IP address, e.g. 33%."
            },
            "scan_time_ms": {
             "type": "integer",
             "description": "Time taken to scan the IP address across all engines, in milliseconds."
            }
           }
          },
          "information": {
           "type": "object",
           "properties": {
            "reverse_dns": {
             "type": "string",
             "description": "Hostname (reverse DNS) assigned to the IP address."
            },
            "is_eu": {
             "type": "boolean",
             "description": "Returns true if the IP address is located in the EU (Europe)."
            },
            "continent_code": {
             "type": "string",
             "description": "Continent code (e.g. AS) of where the IP address is located."
            },
            "continent_name": {
             "type": "string",
             "description": "Continent name (e.g. Asia) of where the IP address is located."
            },
            "country_code": {
             "type": "string",
             "description": "Country code (e.g. CN) of where the IP address is located."
            },
            "country_name": {
             "type": "string",
             "description": "Country name of where the IP address is located."
            },
            "currency": {
             "type": "string",
             "description": "The local currency code (ISO 4217), e.g. EUR."
            },
            "currency_name": {
             "type": "string",
             "description": "Name of the currency used in the country, e.g. Euro."
            },
            "currency_name_plural": {
             "type": "string",
             "description": "Plural name of the currency, e.g. euros."
            },
            "currency_symbol": {
             "type": "string",
             "description": "The symbol of the local currency, e.g. \u20ac for Euro."
            },
            "currency_symbol_native": {
             "type": "string",
             "description": "Native symbol of the currency, e.g. \u20ac."
            },
            "calling_code": {
             "type": "string",
             "description": "The international calling code of the country, e.g. 1 for US."
            },
            "emoji_flag": {
             "type": "string",
             "description": "The country flag emoji."
            },
            "emoji_flag_unicode": {
             "type": "string",
             "description": "The Unicode code points of the country flag emoji."
            },
            "region_name": {
             "type": "string",
             "description": "The region or state associated with the IP."
            },
            "city_name": {
             "type": "string",
             "description": "The city associated with the IP."
            },
            "latitude": {
             "type": "number",
             "description": "The estimated latitude of the city."
            },
            "longitude": {
             "type": "number",
             "description": "The estimated longitude of the city."
            },
            "isp": {
             "type": "string",
             "description": "Internet Service Provider (ISP) of the IP address."
            },
            "asn": {
             "type": "string",
             "description": "IP Autonomous System Number (ASN), such as AS16509."
            },
            "is_bogon": {
             "type": "boolean",
             "description": "Returns true if the IP is a bogon address."
            },
            "is_spamhaus_drop": {
             "type": "boolean",
             "description": "Returns true if the IP is listed in the Spamhaus DROP list."
            },
            "is_fake_bot": {
             "type": "boolean",
             "description": "Returns true if the IP claims to be a search engine bot but is not verified."
            },
            "is_google_bot": {
             "type": "boolean",
             "description": "Returns true if the IP belongs to a verified Google bot."
            },
            "is_search_engine_bot": {
             "type": "boolean",
             "description": "Returns true if the IP belongs to a known and verified search engine bot."
            },
            "related_service_name": {
             "type": "string",
             "description": "The name of the service associated with the IP, e.g. AhrefBot."
            },
            "related_service_domain": {
             "type": "string",
             "description": "The domain name associated with the related service, e.g. ahrefs.com."
            },
            "related_service_type": {
             "type": "string",
             "description": "The service category, can be Crawler, Search Engine Bot, SaaS, Payments, Monitoring, Identity or Marketing."
            },
            "is_major_provider_spf_ip": {
             "type": "boolean",
             "description": "Returns true if the IP belongs to a major email provider SPF range."
            },
            "is_public_dns": {
             "type": "boolean",
             "description": "Returns true if the IP is a public DNS resolver (e.g. 8.8.8.8)."
            },
            "cloud_provider": {
             "type": "string",
             "description": "The name of the major cloud service provider, e.g. Amazon AWS."
            },
            "cloud_provider_domain": {
             "type": "string",
             "description": "The primary domain name of the cloud service provider, e.g. amazonaws.com."
            },
            "aws_service": {
             "type": "string",
             "description": "The AWS service associated with the IP (e.g. EC2, S3, CloudFront, Route53, API Gateway)."
            },
            "is_google_service": {
             "type": "boolean",
             "description": "Returns true if the IP belongs to a Google service."
            },
            "edge_service": {
             "type": "string",
             "description": "The edge or CDN service associated with the IP, e.g. Fastly."
            },
            "edge_service_domain": {
             "type": "string",
             "description": "The domain name associated with the edge or CDN service, e.g. fastly.com."
            },
            "is_satellite": {
             "type": "boolean",
             "description": "Returns true if the IP is associated with satellite connectivity."
            }
           }
          },
          "asn": {
           "type": "object",
           "properties": {
            "asn": {
             "type": "string",
             "description": "The AS number, e.g. AS202425."
            },
            "asname": {
             "type": "string",
             "description": "The AS name, e.g. INT-NETWORK."
            },
            "route": {
             "type": "string",
             "description": "The IP prefix announced by the AS (CIDR notation), e.g. 80.82.77.0/24."
            },
            "status": {
             "type": "string",
             "description": "The current registration status of the AS (e.g. active)."
            },
            "org": {
             "type": "string",
             "description": "The organization that owns or operates the AS, e.g. IP Volume inc."
            },
            "country_code": {
             "type": "string",
             "description": "The country code of the AS (ISO 3166-1 alpha-2)."
            },
            "created": {
             "type": "string",
             "description": "The date in format Y-m-d (e.g. 2018-05-17) the AS was registered."
            },
            "days_since_created": {
             "type": "integer",
             "description": "The number of days since the AS was created."
            },
            "updated": {
             "type": "string",
             "description": "The date in format Y-m-d (e.g. 2024-01-25) the AS information was last updated."
            },
            "days_since_updated": {
             "type": "integer",
             "description": "The number of days since the AS information was last updated."
            },
            "address": {
             "type": "string",
             "description": "The registered address or location associated with the AS."
            },
            "abuse_email": {
             "type": "string",
             "description": "The abuse contact email address for the AS."
            },
            "domain": {
             "type": "string",
             "description": "The primary domain name associated with the AS."
            },
            "total_ipv4_prefixes": {
             "type": "integer",
             "description": "The total number of IPv4 prefixes announced by the AS."
            },
            "total_ipv4_ips": {
             "type": "integer",
             "description": "The total number of IPv4 addresses announced by the AS."
            },
            "total_ipv6_prefixes": {
             "type": "integer",
             "description": "The total number of IPv6 prefixes announced by the AS."
            },
            "type": {
             "type": "string",
             "description": "The AS classification, can be hosting, isp, business (default), education, government or banking."
            },
            "rir": {
             "type": "string",
             "description": "The Regional Internet Registry responsible for the AS, can be RIPE, APNIC, ARIN, JPNIC, LACNIC or AFRINIC."
            }
           }
          },
          "anonymity": {
           "type": "object",
           "properties": {
            "is_proxy": {
             "type": "boolean",
             "description": "Returns true if IP is an open proxy (HTTP/SOCKS)."
            },
            "is_webproxy": {
             "type": "boolean",
             "description": "Returns true if IP is a web proxy."
            },
            "is_residential_proxy": {
             "type": "boolean",
             "description": "Returns true if IP is a residential proxy."
            },
            "is_vpn": {
             "type": "boolean",
             "description": "Returns true if IP is a VPN service, e.g. NordVPN."
            },
            "is_hosting": {
             "type": "boolean",
             "description": "Returns true if IP is a hosting provider, e.g. DigitalOcean."
            },
            "is_relay": {
             "type": "boolean",
             "description": "Returns true if the IP address belongs to a relay service (e.g. Apple Private Relay)."
            },
            "is_tor": {
             "type": "boolean",
             "description": "Returns true if IP is a Tor node."
            }
           }
          },
          "risk_score": {
           "type": "object",
           "properties": {
            "result": {
             "type": "integer",
             "description": "Returns risk score, a number between 0 (safe) and 100 (dangerous)."
            }
           }
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "ip": "80.82.77.139",
         "version": "IPv4",
         "blacklists": {
          "engines": {
           "0": {
            "name": "0spam",
            "detected": false,
            "reference": "https://0spam.org/",
            "elapsed_ms": 0
           },
           "1": {
            "name": "Anti-Attacks BL",
            "detected": false,
            "reference": "https://www.anti-attacks.com/",
            "elapsed_ms": 0
           },
           "2": {
            "name": "AntiSpam_by_CleanTalk",
            "detected": false,
            "reference": "https://cleantalk.org/",
            "elapsed_ms": 0
           },
           "3": {
            "name": "APEWS-L2",
            "detected": false,
            "reference": "http://www.apews.org/",
            "elapsed_ms": 0
           },
           "4": {
            "name": "AZORult Tracker",
            "detected": false,
            "reference": "https://azorult-tracker.net/",
            "elapsed_ms": 0
           },
           "5": {
            "name": "Backscatterer",
            "detected": true,
            "reference": "https://www.backscatterer.org/",
            "elapsed_ms": 0
           },
           "6": {
            "name": "Barracuda_Reputation_BL",
            "detected": false,
            "reference": "https://barracudacentral.org/lookups",
            "elapsed_ms": 0
           },
           "7": {
            "name": "BitNinja",
            "detected": true,
            "reference": "https://bitninja.com/",
            "elapsed_ms": 0
           },
           "8": {
            "name": "BlockedServersRBL",
            "detected": true,
            "reference": "https://www.blockedservers.com/",
            "elapsed_ms": 0
           }
          },
          "detections": 27,
          "engines_count": 80,
          "detection_rate": "33%",
          "scan_time_ms": 5
         },
         "information": {
          "reverse_dns": "dojo.census.shodan.io",
          "is_eu": true,
          "continent_code": "EU",
          "continent_name": "Europe",
          "country_code": "NL",
          "country_name": "Netherlands (Kingdom of the)",
          "currency": "EUR",
          "currency_name": "Euro",
          "currency_name_plural": "euros",
          "currency_symbol": "\u20ac",
          "currency_symbol_native": "\u20ac",
          "calling_code": "31",
          "emoji_flag": "\ud83c\uddf3\ud83c\uddf1",
          "emoji_flag_unicode": "U+1F1F3 U+1F1F1",
          "region_name": "Noord-Holland",
          "city_name": "Amsterdam",
          "latitude": 52.378502,
          "longitude": 4.89998,
          "isp": "FiberXpress BV",
          "asn": "AS202425",
          "is_bogon": false,
          "is_spamhaus_drop": false,
          "is_fake_bot": false,
          "is_google_bot": false,
          "is_search_engine_bot": false,
          "related_service_name": "",
          "related_service_domain": "",
          "related_service_type": "",
          "is_major_provider_spf_ip": false,
          "is_public_dns": false,
          "cloud_provider": "",
          "cloud_provider_domain": "",
          "aws_service": "",
          "is_google_service": false,
          "edge_service": "",
          "edge_service_domain": "",
          "is_satellite": false
         },
         "asn": {
          "asn": "AS202425",
          "asname": "INT-NETWORK",
          "route": "80.82.77.0/24",
          "status": "active",
          "org": "IP Volume inc",
          "country_code": "SC",
          "created": "2018-05-17",
          "days_since_created": 2773,
          "updated": "2024-01-25",
          "days_since_updated": 694,
          "address": "Seychelles",
          "abuse_email": "abuse@ipvolume.net",
          "domain": "ipvolume.net",
          "total_ipv4_prefixes": 55,
          "total_ipv4_ips": 14848,
          "total_ipv6_prefixes": 1,
          "type": "hosting",
          "rir": "RIPE"
         },
         "anonymity": {
          "is_proxy": false,
          "is_webproxy": false,
          "is_residential_proxy": false,
          "is_vpn": false,
          "is_hosting": true,
          "is_relay": false,
          "is_tor": false
         },
         "risk_score": {
          "result": 100
         },
         "elapsed_ms": 98
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 1,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "ip": {
          "type": "string",
          "description": "Public IPv4 or IPv6 address to scan."
         },
         "exclude_engines": {
          "type": "string",
          "description": "List of comma-separated engines to exclude, e.g. BlockedServersRBL,NordSpam."
         },
         "spamhaus_key": {
          "type": "string",
          "description": "Your Spamhaus DBL DQS key, this will enable the Spamhaus engine."
         },
         "disable_reverse_dns": {
          "type": "boolean",
          "description": "Disable reverse DNS lookup to reduce the response time.",
          "default": false
         }
        },
        "required": [
         "ip"
        ]
       },
       "example": {
        "ip": "80.82.77.139"
       }
      }
     }
    }
   }
  },
  "/parked-domain": {
   "post": {
    "operationId": "parked_domain",
    "tags": [
     "Parked Domain API"
    ],
    "summary": "Parked Domain API",
    "description": "Check if a domain is parked, inactive, or for sale, which is useful for filtering out domains that are currently not in use and therefore do not host real content.\n\nConsumes 2 credits per successful request (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/parked-domain-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/parked-domain-api/",
     "description": "Parked Domain API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "host": {
           "type": "string",
           "description": "Host submitted for the parked domain check."
          },
          "parked_domain": {
           "type": "boolean",
           "description": "Returns true if domain is classified as parked."
          },
          "a_records_found": {
           "type": "boolean",
           "description": "Returns true if domain has DNS A records."
          },
          "ns_records_found": {
           "type": "boolean",
           "description": "Returns true if domain has DNS NS records."
          },
          "mx_records_found": {
           "type": "boolean",
           "description": "Returns true if domain has DNS MX records."
          },
          "txt_records_found": {
           "type": "boolean",
           "description": "Returns true if domain has DNS TXT records."
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "host": "example.com",
         "parked_domain": false,
         "a_records_found": true,
         "ns_records_found": true,
         "mx_records_found": true,
         "txt_records_found": true,
         "elapsed_ms": 162
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 2,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "host": {
          "type": "string",
          "description": "Host to submit, e.g. google.com."
         }
        },
        "required": [
         "host"
        ]
       },
       "example": {
        "host": "example.com"
       }
      }
     }
    }
   }
  },
  "/phone-validator": {
   "post": {
    "operationId": "phone_validator",
    "tags": [
     "Phone Validator API"
    ],
    "summary": "Phone Validator API",
    "description": "Check and validate a phone number: get country code, carrier and estimated line type, detect invalid, disposable (commonly used on signups) and abusive numbers.\n\nConsumes 1 credit per successful request (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/phone-validator-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/phone-validator-api/",
     "description": "Phone Validator API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "valid": {
           "type": "boolean",
           "description": "Returns true if the phone number format is valid."
          },
          "number": {
           "type": "string",
           "description": "Returns the submitted phone number."
          },
          "local_format": {
           "type": "string",
           "description": "Returns the phone number in local format, such as (202) 474-6243."
          },
          "international_format": {
           "type": "string",
           "description": "Returns the phone number in international format (e.g. +1 202-474-6243)."
          },
          "e164_format": {
           "type": "string",
           "description": "Returns the phone number in E.164 format (e.g. +12024746243)."
          },
          "uri": {
           "type": "string",
           "description": "Returns the phone number in URI format suitable for HTML tags (e.g. tel:+12024746243)."
          },
          "country_prefix": {
           "type": "string",
           "description": "Returns the phone number country prefix (e.g. +1 for the US)."
          },
          "country_code": {
           "type": "string",
           "description": "Returns the phone number country code in ISO 3166-1 alpha-2 format (e.g. US)."
          },
          "country_name": {
           "type": "string",
           "description": "Returns the phone number country name (e.g. United States)."
          },
          "location": {
           "type": "string",
           "description": "Returns the estimated geographic location of the phone number based on its numbering plan."
          },
          "carrier": {
           "type": "string",
           "description": "Returns the name of the phone number carrier (e.g. Vodafone)."
          },
          "line_type": {
           "type": "string",
           "description": "Returns the phone line type, such as Fixed Line, Mobile, Fixed Line or Mobile, VoIP, Toll-Free, Premium Rate, Shared Cost, Personal Number, Pager, UAN, Voicemail, or Unknown."
          },
          "disposable": {
           "type": "boolean",
           "description": "Returns true if the phone number is disposable (temporary)."
          },
          "abusive": {
           "type": "boolean",
           "description": "Returns true if the phone number is disposable (temporary), spam or fake."
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "valid": true,
         "number": "+12024746243",
         "local_format": "(202) 474-6243",
         "international_format": "+1 202-474-6243",
         "e164_format": "+12024746243",
         "uri": "tel:+12024746243",
         "country_prefix": "+1",
         "country_code": "US",
         "country_name": "United States",
         "location": "Washington D.C.",
         "carrier": "",
         "line_type": "Fixed Line or Mobile",
         "disposable": true,
         "abusive": true,
         "elapsed_ms": 1
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 1,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "number": {
          "type": "string",
          "description": "Phone number to submit, e.g. +12024746243 or 12024746243."
         },
         "country_code": {
          "type": "string",
          "description": "Country code of the phone number (e.g. US), not needed if the number has the prefix."
         }
        },
        "required": [
         "number"
        ]
       },
       "example": {
        "number": "+12024746243"
       }
      }
     }
    }
   }
  },
  "/ping-test": {
   "post": {
    "operationId": "ping_test",
    "tags": [
     "Ping Test API"
    ],
    "summary": "Ping Test API",
    "description": "Perform a ping test to a host from multiple geographic locations.\n\nConsumes 5 credits per successful request (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/ping-test-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/ping-test-api/",
     "description": "Ping Test API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "host": {
           "type": "string",
           "description": "Host submitted for the ping test."
          },
          "locations": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "continent_code": {
              "type": "string",
              "description": "Continent code (e.g. NA) of the pinging location."
             },
             "continent_name": {
              "type": "string",
              "description": "Continent name of the pinging location."
             },
             "country_code": {
              "type": "string",
              "description": "Country code (e.g. US) of the pinging location."
             },
             "country_name": {
              "type": "string",
              "description": "Country name of the pinging location."
             },
             "city_name": {
              "type": "string",
              "description": "City name of the pinging location."
             },
             "ping_output": {
              "type": "object",
              "properties": {
               "host": {
                "type": "string",
                "description": "Host that was pinged."
               },
               "ip_address": {
                "type": "string",
                "description": "IP address the host resolved to from this location."
               },
               "ip_hostname": {
                "type": "string",
                "description": "Hostname (reverse DNS) of the resolved IP address."
               },
               "is_valid_ip": {
                "type": "boolean",
                "description": "Returns true if the resolved IP address is valid."
               },
               "is_private_ip": {
                "type": "boolean",
                "description": "Returns true if the resolved IP address is private."
               },
               "is_loopback_ip": {
                "type": "boolean",
                "description": "Returns true if the resolved IP address is a loopback address."
               },
               "is_reserved_ip": {
                "type": "boolean",
                "description": "Returns true if the resolved IP address is reserved."
               },
               "packets_sent": {
                "type": "integer",
                "description": "Number of ICMP packets sent."
               },
               "packets_received": {
                "type": "integer",
                "description": "Number of ICMP packets received."
               },
               "percent_packet_loss": {
                "type": "integer",
                "description": "Percentage of packets lost."
               },
               "icmp_requests": {
                "type": "array",
                "items": {
                 "type": "object",
                 "properties": {
                  "bytes": {
                   "type": "integer",
                   "description": "Number of bytes in the ICMP echo reply."
                  },
                  "icmp_seq": {
                   "type": "integer",
                   "description": "Sequence number of the ICMP request."
                  },
                  "ttl": {
                   "type": "integer",
                   "description": "Time-to-live (TTL) value in the ICMP reply."
                  },
                  "time_ms": {
                   "type": "number",
                   "description": "Round-trip time of the ICMP request, in milliseconds."
                  }
                 }
                },
                "description": "List of ICMP requests; each item has bytes, icmp_seq, ttl and time_ms."
               },
               "rtt": {
                "type": "object",
                "properties": {
                 "min": {
                  "type": "number",
                  "description": "Minimum round-trip time in milliseconds."
                 },
                 "avg": {
                  "type": "number",
                  "description": "Average round-trip time in milliseconds."
                 },
                 "max": {
                  "type": "number",
                  "description": "Maximum round-trip time in milliseconds."
                 },
                 "mdev": {
                  "type": "number",
                  "description": "Round-trip time standard deviation in milliseconds."
                 }
                }
               },
               "elapsed_ms": {
                "type": "integer",
                "description": "Time taken by the ping test from this location, in milliseconds."
               }
              }
             },
             "error": {
              "type": "string",
              "description": "Error message if the ping from this location failed."
             }
            }
           },
           "description": "List of geographic locations with the ping output from each location."
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "host": "google.com",
         "locations": [
          {
           "continent_code": "NA",
           "continent_name": "North America",
           "country_code": "US",
           "country_name": "United States",
           "city_name": "San Francisco",
           "ping_output": {
            "host": "google.com",
            "ip_address": "142.251.46.238",
            "ip_hostname": "sfo03s27-in-f14.1e100.net",
            "is_valid_ip": true,
            "is_private_ip": false,
            "is_loopback_ip": false,
            "is_reserved_ip": false,
            "packets_sent": 3,
            "packets_received": 3,
            "percent_packet_loss": 0,
            "icmp_requests": [
             {
              "bytes": 64,
              "icmp_seq": 1,
              "ttl": 117,
              "time_ms": 0.977
             },
             {
              "bytes": 64,
              "icmp_seq": 2,
              "ttl": 117,
              "time_ms": 0.689
             },
             {
              "bytes": 64,
              "icmp_seq": 3,
              "ttl": 117,
              "time_ms": 0.454
             }
            ],
            "rtt": {
             "min": 0.454,
             "avg": 0.706,
             "max": 0.977,
             "mdev": 0.213
            },
            "elapsed_ms": 2018
           },
           "error": ""
          },
          {
           "continent_code": "AS",
           "continent_name": "Asia",
           "country_code": "IN",
           "country_name": "India",
           "city_name": "Bangalore",
           "ping_output": {
            "host": "google.com",
            "ip_address": "142.250.70.110",
            "ip_hostname": "pnbomb-ac-in-f14.1e100.net",
            "is_valid_ip": true,
            "is_private_ip": false,
            "is_loopback_ip": false,
            "is_reserved_ip": false,
            "packets_sent": 3,
            "packets_received": 3,
            "percent_packet_loss": 0,
            "icmp_requests": [
             {
              "bytes": 64,
              "icmp_seq": 1,
              "ttl": 118,
              "time_ms": 18
             },
             {
              "bytes": 64,
              "icmp_seq": 2,
              "ttl": 118,
              "time_ms": 17.5
             },
             {
              "bytes": 64,
              "icmp_seq": 3,
              "ttl": 118,
              "time_ms": 17.3
             }
            ],
            "rtt": {
             "min": 17.262,
             "avg": 17.594,
             "max": 17.999,
             "mdev": 0.305
            },
            "elapsed_ms": 2022
           },
           "error": ""
          }
         ],
         "elapsed_ms": 3279
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 5,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "host": {
          "type": "string",
          "description": "Host to submit, e.g. google.com."
         }
        },
        "required": [
         "host"
        ]
       },
       "example": {
        "host": "google.com"
       }
      }
     }
    }
   }
  },
  "/port-scan": {
   "post": {
    "operationId": "port_scan",
    "tags": [
     "Port Scan API"
    ],
    "summary": "Port Scan API",
    "description": "Scan common TCP ports of an IP and get the open/closed status for each port.\n\nConsumes 5 credits per successful request (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/port-scan-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/port-scan-api/",
     "description": "Port Scan API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "ip": {
           "type": "string",
           "description": "IP address submitted for the port scan."
          },
          "open_ports": {
           "type": "integer",
           "description": "Number of open ports found."
          },
          "scanned_ports": {
           "type": "integer",
           "description": "Number of ports scanned."
          },
          "ports": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "port": {
              "type": "integer",
              "description": "Port number scanned."
             },
             "proto": {
              "type": "string",
              "description": "Protocol of the scanned port, e.g. tcp."
             },
             "status": {
              "type": "string",
              "description": "Status of the port, can be open/closed."
             },
             "service": {
              "type": "string",
              "description": "Common service associated with the port, e.g. ftp, ssh, https."
             }
            }
           },
           "description": "List of scanned ports with their status."
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "ip": "1.2.3.4",
         "open_ports": 4,
         "scanned_ports": 20,
         "ports": [
          {
           "port": 21,
           "proto": "tcp",
           "status": "open",
           "service": "ftp"
          },
          {
           "port": 22,
           "proto": "tcp",
           "status": "open",
           "service": "ssh"
          },
          {
           "port": 23,
           "proto": "tcp",
           "status": "closed",
           "service": "telnet"
          },
          {
           "port": 25,
           "proto": "tcp",
           "status": "closed",
           "service": "smtp"
          },
          {
           "port": 53,
           "proto": "tcp",
           "status": "closed",
           "service": "domain"
          },
          {
           "port": 80,
           "proto": "tcp",
           "status": "open",
           "service": "http"
          },
          {
           "port": 110,
           "proto": "tcp",
           "status": "closed",
           "service": "pop3"
          },
          {
           "port": 111,
           "proto": "tcp",
           "status": "closed",
           "service": "rpcbind"
          },
          {
           "port": 135,
           "proto": "tcp",
           "status": "closed",
           "service": "msrpc"
          },
          {
           "port": 139,
           "proto": "tcp",
           "status": "closed",
           "service": "netbios-ssn"
          },
          {
           "port": 143,
           "proto": "tcp",
           "status": "closed",
           "service": "imap"
          },
          {
           "port": 443,
           "proto": "tcp",
           "status": "open",
           "service": "https"
          },
          {
           "port": 445,
           "proto": "tcp",
           "status": "closed",
           "service": "microsoft-ds"
          },
          {
           "port": 993,
           "proto": "tcp",
           "status": "closed",
           "service": "imaps"
          },
          {
           "port": 995,
           "proto": "tcp",
           "status": "closed",
           "service": "pop3s"
          },
          {
           "port": 1723,
           "proto": "tcp",
           "status": "closed",
           "service": "pptp"
          },
          {
           "port": 3306,
           "proto": "tcp",
           "status": "closed",
           "service": "mysql"
          },
          {
           "port": 3389,
           "proto": "tcp",
           "status": "closed",
           "service": "ms-wbt-server"
          },
          {
           "port": 5900,
           "proto": "tcp",
           "status": "closed",
           "service": "vnc"
          },
          {
           "port": 8080,
           "proto": "tcp",
           "status": "closed",
           "service": "http-proxy"
          }
         ],
         "elapsed_ms": 185
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 5,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "ip": {
          "type": "string",
          "description": "IPv4 or IPv6 address to scan."
         },
         "top_ports": {
          "type": "integer",
          "description": "Can be 20 or 100: scan the top 20 or the top 100 most common ports.",
          "default": 20
         },
         "custom_ports": {
          "type": "string",
          "description": "Set custom ports to scan, e.g. 21,22,23,53,80,443 (no spaces)."
         }
        },
        "required": [
         "ip"
        ]
       },
       "example": {
        "ip": "1.2.3.4"
       }
      }
     }
    }
   }
  },
  "/qr-scan": {
   "post": {
    "operationId": "qr_scan",
    "tags": [
     "QR Scan API"
    ],
    "summary": "QR Scan API",
    "description": "Scan a QR code image (submitted as base64) and extract its decoded content.\n\nConsumes 2 credits per successful request (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/qr-scan-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/qr-scan-api/",
     "description": "QR Scan API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "qrcode_found": {
           "type": "boolean",
           "description": "Returns true if a QR code was found in the image."
          },
          "extracted_data": {
           "type": "string",
           "description": "Data extracted from the QR code."
          },
          "action_type": {
           "type": "string",
           "description": "Type of action encoded in the QR code, e.g. URL, EMAIL, PHONE, TEXT."
          },
          "ioc": {
           "type": "object",
           "properties": {
            "urls": {
             "type": "array",
             "items": {
              "type": "string"
             },
             "description": "URLs found in the QR code data."
            },
            "emails": {
             "type": "array",
             "items": {},
             "description": "Email addresses found in the QR code data."
            },
            "phone_numbers": {
             "type": "array",
             "items": {},
             "description": "Phone numbers found in the QR code data."
            },
            "bitcoin_addresses": {
             "type": "array",
             "items": {},
             "description": "Bitcoin addresses found in the QR code data."
            }
           }
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "qrcode_found": true,
         "extracted_data": "https://www.possible-phishing-url.com/bank/login",
         "action_type": "URL",
         "ioc": {
          "urls": [
           "https://www.possible-phishing-url.com/bank/login"
          ],
          "emails": [],
          "phone_numbers": [],
          "bitcoin_addresses": []
         },
         "elapsed_ms": 63
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 2,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "image_base64": {
          "type": "string",
          "description": "Base64-encoded image file content (max 2.5 MB)."
         }
        },
        "required": [
         "image_base64"
        ]
       },
       "example": {
        "image_base64": "RW5jb2RlIGFuZCBkZWNv..."
       }
      }
     }
    }
   }
  },
  "/reverse-ip": {
   "post": {
    "operationId": "reverse_ip",
    "tags": [
     "Reverse IP API"
    ],
    "summary": "Reverse IP API",
    "description": "Find domains that share the same IPv4 address (DNS A record).\n\nConsumes 50 credits per successful request (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/reverse-ip-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/reverse-ip-api/",
     "description": "Reverse IP API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "ip": {
           "type": "string",
           "description": "IP address submitted for the reverse IP lookup."
          },
          "page_num": {
           "type": "integer",
           "description": "Page number of the results returned."
          },
          "records_num": {
           "type": "integer",
           "description": "Number of domains returned on the current page (max 500). If it is 500, there may be more domains on the next page; a lower value means this is the last page."
          },
          "domains": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "name": {
              "type": "string",
              "description": "Domain name hosted on the IP address."
             },
             "updated": {
              "type": "string",
              "description": "Date and time of when the domain record was last seen on the IP."
             }
            }
           },
           "description": "List of domains hosted on the IP address."
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "ip": "46.105.204.23",
         "page_num": 1,
         "records_num": 176,
         "domains": [
          {
           "name": "maevadigitalactive.com",
           "updated": "2025-01-22 11:48:31"
          },
          {
           "name": "textileblue.be",
           "updated": "2025-01-22 10:42:55"
          },
          {
           "name": "testdeqigratuit.com",
           "updated": "2025-01-20 10:52:51"
          },
          {
           "name": "consorcioserrano.es",
           "updated": "2025-01-20 09:58:51"
          },
          {
           "name": "occitanie-films.fr",
           "updated": "2025-01-19 10:47:44"
          },
          {
           "name": "fisheyestudio.it",
           "updated": "2025-01-17 08:23:30"
          },
          {
           "name": "blogfrenchfluent.com",
           "updated": "2025-01-16 13:11:28"
          },
          {
           "name": "shop.movensee.com",
           "updated": "2025-01-15 12:20:23"
          },
          {
           "name": "monsuivilogement.fr",
           "updated": "2025-01-15 12:12:59"
          },
          {
           "name": "larchebologna.it",
           "updated": "2025-01-13 12:23:50"
          },
          {
           "name": "reliablecounter.com",
           "updated": "2025-01-13 12:20:38"
          },
          {
           "name": "egliseverte.org",
           "updated": "2025-01-13 10:48:20"
          },
          {
           "name": "canada-culture.org",
           "updated": "2025-01-12 10:26:23"
          },
          {
           "name": "pizz-arco.fr",
           "updated": "2025-01-11 11:46:12"
          },
          {
           "name": "dsavocats.com",
           "updated": "2025-01-10 10:32:48"
          }
         ],
         "elapsed_ms": 620
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 50,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "ip": {
          "type": "string",
          "description": "IPv4 address to submit, e.g. 46.105.204.23."
         },
         "page_num": {
          "type": "integer",
          "description": "Page of results to return; each page contains up to 500 domains. If records_num in the response is 500, request the next page to get more domains.",
          "default": 1
         }
        },
        "required": [
         "ip"
        ]
       },
       "example": {
        "ip": "46.105.204.23"
       }
      }
     }
    }
   }
  },
  "/screenshot": {
   "post": {
    "operationId": "screenshot",
    "tags": [
     "Screenshot API"
    ],
    "summary": "Screenshot API",
    "description": "Capture a screenshot of any web page in a real browser, with full-page capture, device emulation, dark mode, custom viewport and headers, and many other options.\n\nConsumes 20 credits per successful request (non-200 responses never consume credits). Can take up to 150 seconds; set your client timeout accordingly. Full reference: https://docs.apivoid.com/screenshot-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/screenshot-api/",
     "description": "Screenshot API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "url": {
           "type": "string",
           "description": "URL submitted for the screenshot."
          },
          "rendered_file": {
           "type": "object",
           "properties": {
            "format": {
             "type": "string",
             "description": "Format of the rendered file, e.g. PNG."
            },
            "date_time_utc": {
             "type": "string",
             "description": "Date and time (UTC) of when the screenshot was captured."
            },
            "base64_file": {
             "type": "string",
             "description": "The screenshot image encoded in base64."
            },
            "image_width": {
             "type": "integer",
             "description": "Width of the screenshot in pixels."
            },
            "image_height": {
             "type": "integer",
             "description": "Height of the screenshot in pixels."
            },
            "file_size_readable": {
             "type": "string",
             "description": "File size in human-readable format, e.g. 344.53 KB."
            },
            "file_size_bytes": {
             "type": "integer",
             "description": "File size in bytes."
            }
           }
          },
          "http_response": {
           "type": "object",
           "properties": {
            "final_url": {
             "type": "string",
             "description": "Final URL after following redirects."
            },
            "status_code": {
             "type": "integer",
             "description": "HTTP status code returned by the server."
            },
            "content_type": {
             "type": "string",
             "description": "Content type of the page, e.g. text/html."
            },
            "page_content_empty": {
             "type": "boolean",
             "description": "Returns true if the page content is empty."
            },
            "ip": {
             "type": "string",
             "description": "IP address of the server that served the page."
            }
           }
          },
          "html_info": {
           "type": "object",
           "properties": {
            "title": {
             "type": "string",
             "description": "Title of the page."
            },
            "description": {
             "type": "string",
             "description": "Meta description of the page."
            },
            "og_image": {
             "type": "string",
             "description": "Open Graph image URL of the page."
            },
            "icon": {
             "type": "string",
             "description": "Favicon URL of the page."
            },
            "og_site_name": {
             "type": "string",
             "description": "Open Graph site name of the page."
            },
            "ld_organization": {
             "type": "string",
             "description": "Organization name found in JSON-LD structured data."
            },
            "canonical": {
             "type": "string",
             "description": "Canonical URL of the page."
            },
            "robots": {
             "type": "string",
             "description": "Robots meta tag of the page."
            },
            "twitter_site": {
             "type": "string",
             "description": "Twitter site handle of the page."
            },
            "lang": {
             "type": "string",
             "description": "Language declared by the page, e.g. en-US."
            }
           }
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "url": "https://apple.com/",
         "rendered_file": {
          "format": "PNG",
          "date_time_utc": "2024-11-29 19:00:32",
          "base64_file": "iVBORw0KGgoAAAANSUhEUgAAB4AAAAQ4CAIAAABnsVYUAAAAAXNSR0IArs4c6QAAIABJREFUeJzs3XdUFNfbB/C7dJbeu4ICQUERBLEgWLA37KKoEbFrrKiINbH3rlhQsWHABhqxgQiKCg...",
          "image_width": 1920,
          "image_height": 1080,
          "file_size_readable": "344.53 KB",
          "file_size_bytes": 352795
         },
         "http_response": {
          "final_url": "https://www.apple.com/",
          "status_code": 200,
          "content_type": "text/html",
          "page_content_empty": false,
          "ip": "69.192.160.210"
         },
         "html_info": {
          "title": "Apple",
          "description": "Discover the innovative world of Apple and shop everything iPhone, iPad, Apple Watch, Mac, and Apple TV, plus explore accessories, entertainment, and expert device support.",
          "og_image": "https://www.apple.com/ac/structured-data/images/open_graph_logo.png?202110180743",
          "icon": "",
          "og_site_name": "Apple",
          "ld_organization": "Apple",
          "canonical": "https://www.apple.com/",
          "robots": "",
          "twitter_site": "",
          "lang": "en-US"
         },
         "elapsed_ms": 5763
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 20,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "url": {
          "type": "string",
          "description": "URL to submit, e.g. https://apple.com/."
         },
         "image_type": {
          "type": "string",
          "description": "Screenshot image type: png, jpeg, webp, avif.",
          "default": "png"
         },
         "full_page": {
          "type": "boolean",
          "description": "Take a full page screenshot (max 15000px height).",
          "default": false
         },
         "viewport_width": {
          "type": "integer",
          "description": "Browser viewport width in pixels (max 5000).",
          "default": 1920
         },
         "viewport_height": {
          "type": "integer",
          "description": "Browser viewport height in pixels (max 10000).",
          "default": 1080
         },
         "image_width": {
          "type": "integer",
          "description": "Thumbnail image width in pixels (max 5000)."
         },
         "image_height": {
          "type": "integer",
          "description": "Thumbnail image height in pixels (max 10000)."
         },
         "add_url_bar": {
          "type": "boolean",
          "description": "Include the browser's address bar in the screenshot.",
          "default": false
         },
         "user_agent": {
          "type": "string",
          "description": "Can be desktop (default, a random desktop user agent) or mobile.",
          "default": "desktop"
         },
         "accept_language": {
          "type": "string",
          "description": "Change the Accept-Language HTTP header, format like en-US.",
          "default": "en-US"
         },
         "basic_auth_username": {
          "type": "string",
          "description": "Set username for Basic Authentication."
         },
         "basic_auth_password": {
          "type": "string",
          "description": "Set password for Basic Authentication."
         },
         "authorization_bearer": {
          "type": "string",
          "description": "Set the authorization bearer token."
         },
         "custom_header": {
          "type": "string",
          "description": "A custom header, e.g. X-key: 690d1f9e-5a53-45ad-997d-a23143a0d068."
         },
         "disable_js": {
          "type": "boolean",
          "description": "Disable JavaScript.",
          "default": false
         },
         "disable_popups": {
          "type": "boolean",
          "description": "Disable alerts, cookie consents and confirmation dialogs.",
          "default": true
         },
         "disable_images": {
          "type": "boolean",
          "description": "Disable loading of images.",
          "default": false
         },
         "disable_ads": {
          "type": "boolean",
          "description": "Disable advertisements.",
          "default": true
         },
         "disable_fonts": {
          "type": "boolean",
          "description": "Disable loading of custom fonts.",
          "default": false
         },
         "omit_background": {
          "type": "boolean",
          "description": "Omit the page background.",
          "default": false
         },
         "grayscale": {
          "type": "boolean",
          "description": "The screenshot image will be grayscaled.",
          "default": false
         },
         "emulate_device": {
          "type": "string",
          "description": "Can be ipad, ipad_landscape, iphone5, iphone5_landscape, iphone8, iphone8_landscape, iphone13, iphone13_landscape."
         },
         "dark_mode": {
          "type": "boolean",
          "description": "Enable dark mode, if available on the web page.",
          "default": false
         },
         "delay": {
          "type": "integer",
          "description": "Wait N seconds (max 10) before taking the screenshot.",
          "default": 0
         }
        },
        "required": [
         "url"
        ]
       },
       "example": {
        "url": "https://apple.com/"
       }
      }
     }
    }
   }
  },
  "/security-headers": {
   "post": {
    "operationId": "security_headers",
    "tags": [
     "Security Headers API"
    ],
    "summary": "Security Headers API",
    "description": "Analyze the HTTP security headers of a URL: check which security headers are present, missing, or misconfigured, with details for each header, and get a security score.\n\nConsumes 2 credits per successful request (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/security-headers-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/security-headers-api/",
     "description": "Security Headers API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "url": {
           "type": "string",
           "description": "URL submitted for the security headers check."
          },
          "final_url": {
           "type": "string",
           "description": "Final URL after following redirects."
          },
          "ip": {
           "type": "string",
           "description": "IP address of the server that served the page."
          },
          "status_code": {
           "type": "integer",
           "description": "HTTP status code returned by the server."
          },
          "response_note": {
           "type": "string",
           "description": "Additional note about the HTTP response, if any."
          },
          "connection_error": {
           "type": "boolean",
           "description": "Returns true if the connection to the server failed."
          },
          "access_restricted": {
           "type": "boolean",
           "description": "Returns true if access to the page is restricted (e.g. by a firewall or captcha)."
          },
          "response_headers": {
           "type": "object",
           "properties": {
            "content-security-policy": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "content-type": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "cross-origin-opener-policy": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "cross-origin-opener-policy-report-only": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "date": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "referrer-policy": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "report-to": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "reporting-endpoints": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "server": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "strict-transport-security": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "x-content-type-options": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "x-frame-options": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "x-mkt-cache": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "x-stripe-proxy-response": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "x-stripe-server-rpc-duration-micros": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "x-wc": {
             "type": "array",
             "items": {
              "type": "string"
             }
            }
           },
           "description": "HTTP response headers returned by the server, keyed by lowercase header name."
          },
          "security_headers": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "name": {
              "type": "string",
              "description": "Name of the security header, lowercase, e.g. content-security-policy."
             },
             "reference": {
              "type": "string",
              "description": "Reference URL with documentation about the header."
             },
             "found": {
              "type": "boolean",
              "description": "Returns true if the security header is present."
             },
             "value": {
              "type": "array",
              "items": {
               "type": "string"
              },
              "description": "Values of the security header, if present."
             },
             "issues": {
              "type": "array",
              "items": {
               "type": "object",
               "properties": {
                "code": {
                 "type": "string",
                 "description": "Machine-readable issue code, e.g. MISSING_CORP."
                },
                "message": {
                 "type": "string",
                 "description": "Human-readable description of the issue."
                },
                "type": {
                 "type": "string",
                 "description": "Issue severity: error, warning or information."
                }
               }
              },
              "description": "Issues found with the header configuration; each item has code, message and type."
             }
            }
           },
           "description": "List of security headers checked with their status and issues."
          },
          "cors": {
           "type": "object",
           "properties": {
            "present": {
             "type": "boolean",
             "description": "Returns true if CORS headers are present."
            },
            "configuration": {
             "type": "object",
             "properties": {
              "allow_origin": {
               "type": "string",
               "description": "Value of the Access-Control-Allow-Origin header."
              },
              "allow_credentials": {
               "type": "boolean",
               "description": "Returns true if Access-Control-Allow-Credentials is enabled."
              },
              "allow_methods": {
               "type": "array",
               "items": {},
               "description": "HTTP methods allowed by the CORS configuration."
              },
              "allow_headers": {
               "type": "array",
               "items": {},
               "description": "Headers allowed by the CORS configuration."
              },
              "expose_headers": {
               "type": "array",
               "items": {},
               "description": "Headers exposed by the CORS configuration."
              },
              "max_age": {
               "type": "integer",
               "description": "Max age of the CORS preflight cache in seconds."
              }
             }
            },
            "issues": {
             "type": "array",
             "items": {},
             "description": "Issues found with the CORS configuration."
            }
           }
          },
          "information_leakage": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "name": {
              "type": "string",
              "description": "Name of the header, lowercase, e.g. server, x-powered-by."
             },
             "found": {
              "type": "boolean",
              "description": "Returns true if the header is present."
             },
             "value": {
              "type": "array",
              "items": {
               "type": "string"
              },
              "description": "Values of the header, if present."
             },
             "issues": {
              "type": "array",
              "items": {},
              "description": "Issues found related to the information disclosed."
             }
            }
           },
           "description": "Headers that may leak information about the server or technology stack."
          },
          "duplicate_headers": {
           "type": "array",
           "items": {},
           "description": "Headers that appear more than once in the response."
          },
          "cookies": {
           "type": "array",
           "items": {},
           "description": "Cookies set by the server with their security attributes."
          },
          "summary": {
           "type": "object",
           "properties": {
            "security_headers": {
             "type": "object",
             "properties": {
              "checked": {
               "type": "integer",
               "description": "Number of security headers checked."
              },
              "found": {
               "type": "integer",
               "description": "Number of security headers found."
              },
              "missing": {
               "type": "integer",
               "description": "Number of security headers missing."
              }
             }
            },
            "issues": {
             "type": "object",
             "properties": {
              "errors": {
               "type": "integer",
               "description": "Number of issues with error severity."
              },
              "warnings": {
               "type": "integer",
               "description": "Number of issues with warning severity."
              },
              "information": {
               "type": "integer",
               "description": "Number of issues with informational severity."
              }
             }
            }
           }
          },
          "score": {
           "type": "integer",
           "description": "Security headers score of the page (0 bad, 100 good)."
          },
          "max_score": {
           "type": "integer",
           "description": "Maximum achievable score, e.g. 100."
          },
          "grade": {
           "type": "string",
           "description": "Grade assigned based on the score, e.g. A+, A, A-, B+, B, B-, C+, C, C-, D+, D, D-, F."
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "url": "https://stripe.com/",
         "final_url": "https://stripe.com/en-fi",
         "ip": "54.76.53.164",
         "status_code": 200,
         "response_note": "",
         "connection_error": false,
         "access_restricted": false,
         "response_headers": {
          "content-security-policy": [
           "base-uri 'none'; child-src 'none'; connect-src https://c.increment.com https://c.stripe.dev https://c.stripe.global https://c.stripe.partners blob: https://b.stripecdn.com https://errors.stripe.com https://ext.stripe.com https://r.stripe.com https://stripe-images.s3.us-west-1.amazonaws.com https://stripe.com 'self'; default-src 'none'; font-src https://b.stripecdn.com 'self'; form-action https://stripe.com 'self'; frame-ancestors https://app.contentful.com 'self'; frame-src https://b.stripecdn.com https://js.stripe.com https://support-conversations.stripe.com 'self'; img-src data: https://assets.ctfassets.net https://assets.stripeassets.com https://b.stripecdn.com https://images.ctfassets.net https://images.stripeassets.com https://q.stripe.com 'self'; manifest-src 'none'; media-src https://assets.ctfassets.net https://assets.stripeassets.com https://b.stripecdn.com https://videos.ctfassets.net https://videos.stripeassets.com 'self'; object-src 'none'; script-src https://b.stripecdn.com https://js.stripe.com 'self' 'sha256-3aWvb9tRBjmz1OjR3n7mwiTm94+s4iki4mMZF82asmc=' 'sha256-5LtzXhT7UFn+GqP5pKEMGL08UNZsrzANHFEBW/mQHGw=' 'sha256-beLzNcen8LrazzSCRjAapoIMTgJI0osPWGNSX7aK6lc=' 'sha256-cCM0Z4lzGkzQnmbdVw+ouz0JRawyaKcZ4yiqzqYS7ek=' 'sha256-vTifGUJH6hJYTvstw4xJ4xfr/vE0ELkOV4GpCumyqfg=' 'sha256-KxhSaxKB5RFTQsqfRwp+zG7iLjvMrTAySqnSvWlqct0=' 'sha256-tMuJ8c00j54yuxogrdIJeGhNVB350dc56i969XRz/Mc=' 'sha256-aEFSvCaVnb2wNwuO3IzA8J44RdTKt6vms9beA7BcCYg=' 'sha256-0SWEc2BfR2o77i2vUiNNIrFKQkjc2Ujsr2hlfZ6oUek=' 'report-sample'; style-src https://b.stripecdn.com 'self' 'unsafe-inline'; worker-src https://b.stripecdn.com 'self'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=s19Fnq91o9H4NDVx-N7qNHjvHjJd5CM9iCDBgcEd6Ky75-HIBDtVZY0Veb2cUyQ%3D"
          ],
          "content-type": [
           "text/html; charset=utf-8"
          ],
          "cross-origin-opener-policy": [
           "same-origin-allow-popups; report-to=\"wsp_coop\""
          ],
          "cross-origin-opener-policy-report-only": [
           "same-origin-allow-popups; report-to=\"wsp_coop\""
          ],
          "date": [
           "Tue, 17 Mar 2026 15:46:41 GMT"
          ],
          "referrer-policy": [
           "no-referrer-when-downgrade"
          ],
          "report-to": [
           "{\"group\":\"wsp_coop\",\"max_age\":8640,\"endpoints\":[{\"url\":\"https://q.stripe.com/coop-report?s=s19Fnq91o9H4NDVx-N7qNHjvHjJd5CM9iCDBgcEd6Ky75-HIBDtVZY0Veb2cUyQ=\"}],\"include_subdomains\":true},{\"group\":\"wsp_coep\",\"max_age\":8640,\"endpoints\":[{\"url\":\"https://q.stripe.com/coep-report?s=s19Fnq91o9H4NDVx-N7qNHjvHjJd5CM9iCDBgcEd6Ky75-HIBDtVZY0Veb2cUyQ=\"}],\"include_subdomains\":true}"
          ],
          "reporting-endpoints": [
           "coop=\"https://q.stripe.com/coop-report\", wsp_coop=\"https://q.stripe.com/coop-report?s=s19Fnq91o9H4NDVx-N7qNHjvHjJd5CM9iCDBgcEd6Ky75-HIBDtVZY0Veb2cUyQ=\",wsp_coep=\"https://q.stripe.com/coep-report?s=s19Fnq91o9H4NDVx-N7qNHjvHjJd5CM9iCDBgcEd6Ky75-HIBDtVZY0Veb2cUyQ=\""
          ],
          "server": [
           "nginx"
          ],
          "strict-transport-security": [
           "max-age=63072000; includeSubDomains; preload"
          ],
          "x-content-type-options": [
           "nosniff"
          ],
          "x-frame-options": [
           "SAMEORIGIN"
          ],
          "x-mkt-cache": [
           "HIT"
          ],
          "x-stripe-proxy-response": [
           "upstream"
          ],
          "x-stripe-server-rpc-duration-micros": [
           "44130"
          ],
          "x-wc": [
           "ABCDEFGHIJ"
          ]
         },
         "security_headers": [
          {
           "name": "strict-transport-security",
           "reference": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security",
           "found": true,
           "value": [
            "max-age=63072000; includeSubDomains; preload"
           ],
           "issues": []
          },
          {
           "name": "content-security-policy",
           "reference": "https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP",
           "found": true,
           "value": [
            "base-uri 'none'; child-src 'none'; connect-src https://c.increment.com https://c.stripe.dev https://c.stripe.global https://c.stripe.partners blob: https://b.stripecdn.com https://errors.stripe.com https://ext.stripe.com https://r.stripe.com https://stripe-images.s3.us-west-1.amazonaws.com https://stripe.com 'self'; default-src 'none'; font-src https://b.stripecdn.com 'self'; form-action https://stripe.com 'self'; frame-ancestors https://app.contentful.com 'self'; frame-src https://b.stripecdn.com https://js.stripe.com https://support-conversations.stripe.com 'self'; img-src data: https://assets.ctfassets.net https://assets.stripeassets.com https://b.stripecdn.com https://images.ctfassets.net https://images.stripeassets.com https://q.stripe.com 'self'; manifest-src 'none'; media-src https://assets.ctfassets.net https://assets.stripeassets.com https://b.stripecdn.com https://videos.ctfassets.net https://videos.stripeassets.com 'self'; object-src 'none'; script-src https://b.stripecdn.com https://js.stripe.com 'self' 'sha256-3aWvb9tRBjmz1OjR3n7mwiTm94+s4iki4mMZF82asmc=' 'sha256-5LtzXhT7UFn+GqP5pKEMGL08UNZsrzANHFEBW/mQHGw=' 'sha256-beLzNcen8LrazzSCRjAapoIMTgJI0osPWGNSX7aK6lc=' 'sha256-cCM0Z4lzGkzQnmbdVw+ouz0JRawyaKcZ4yiqzqYS7ek=' 'sha256-vTifGUJH6hJYTvstw4xJ4xfr/vE0ELkOV4GpCumyqfg=' 'sha256-KxhSaxKB5RFTQsqfRwp+zG7iLjvMrTAySqnSvWlqct0=' 'sha256-tMuJ8c00j54yuxogrdIJeGhNVB350dc56i969XRz/Mc=' 'sha256-aEFSvCaVnb2wNwuO3IzA8J44RdTKt6vms9beA7BcCYg=' 'sha256-0SWEc2BfR2o77i2vUiNNIrFKQkjc2Ujsr2hlfZ6oUek=' 'report-sample'; style-src https://b.stripecdn.com 'self' 'unsafe-inline'; worker-src https://b.stripecdn.com 'self'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=s19Fnq91o9H4NDVx-N7qNHjvHjJd5CM9iCDBgcEd6Ky75-HIBDtVZY0Veb2cUyQ%3D"
           ],
           "issues": []
          },
          {
           "name": "x-content-type-options",
           "reference": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options",
           "found": true,
           "value": [
            "nosniff"
           ],
           "issues": []
          },
          {
           "name": "x-xss-protection",
           "reference": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection",
           "found": false,
           "value": [],
           "issues": [
            {
             "code": "MISSING_X_XSS_PROTECTION",
             "message": "X-XSS-Protection header is missing. This is acceptable as the header is deprecated.",
             "type": "information"
            }
           ]
          },
          {
           "name": "referrer-policy",
           "reference": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy",
           "found": true,
           "value": [
            "no-referrer-when-downgrade"
           ],
           "issues": [
            {
             "code": "REFERRER_POLICY_WEAK",
             "message": "Referrer-Policy 'no-referrer-when-downgrade' may leak referrer to third-party origins over HTTPS.",
             "type": "information"
            }
           ]
          },
          {
           "name": "permissions-policy",
           "reference": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Permissions-Policy",
           "found": false,
           "value": [],
           "issues": [
            {
             "code": "MISSING_PERMISSIONS_POLICY",
             "message": "Permissions-Policy header is missing.",
             "type": "error"
            }
           ]
          },
          {
           "name": "x-frame-options",
           "reference": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options",
           "found": true,
           "value": [
            "SAMEORIGIN"
           ],
           "issues": []
          },
          {
           "name": "cross-origin-opener-policy",
           "reference": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Opener-Policy",
           "found": true,
           "value": [
            "same-origin-allow-popups; report-to=\"wsp_coop\""
           ],
           "issues": []
          },
          {
           "name": "cross-origin-embedder-policy",
           "reference": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Embedder-Policy",
           "found": false,
           "value": [],
           "issues": [
            {
             "code": "MISSING_COEP",
             "message": "Cross-Origin-Embedder-Policy header is missing.",
             "type": "information"
            }
           ]
          },
          {
           "name": "cross-origin-resource-policy",
           "reference": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Resource-Policy",
           "found": false,
           "value": [],
           "issues": [
            {
             "code": "MISSING_CORP",
             "message": "Cross-Origin-Resource-Policy header is missing.",
             "type": "information"
            }
           ]
          }
         ],
         "cors": {
          "present": false,
          "configuration": {
           "allow_origin": "",
           "allow_credentials": false,
           "allow_methods": [],
           "allow_headers": [],
           "expose_headers": [],
           "max_age": 0
          },
          "issues": []
         },
         "information_leakage": [
          {
           "name": "server",
           "found": true,
           "value": [
            "nginx"
           ],
           "issues": []
          }
         ],
         "duplicate_headers": [],
         "cookies": [],
         "summary": {
          "security_headers": {
           "checked": 10,
           "found": 6,
           "missing": 4
          },
          "issues": {
           "errors": 1,
           "warnings": 0,
           "information": 4
          }
         },
         "score": 94,
         "max_score": 100,
         "grade": "A",
         "elapsed_ms": 524
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 2,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "url": {
          "type": "string",
          "description": "URL to submit, e.g. https://stripe.com/."
         }
        },
        "required": [
         "url"
        ]
       },
       "example": {
        "url": "https://stripe.com/"
       }
      }
     }
    }
   }
  },
  "/site-trust": {
   "post": {
    "operationId": "site_trustworthiness",
    "tags": [
     "Site Trustworthiness API"
    ],
    "summary": "Site Trustworthiness API",
    "description": "Get a trust score of a website, useful to spot potentially fraudulent and insecure web shops, with detailed security and content checks.\n\nConsumes 10 credits per successful request (non-200 responses never consume credits). Can take up to 75 seconds; set your client timeout accordingly. Full reference: https://docs.apivoid.com/site-trustworthiness-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/site-trustworthiness-api/",
     "description": "Site Trustworthiness API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "host": {
           "type": "string",
           "description": "Host submitted for the trustworthiness analysis."
          },
          "dns_records": {
           "type": "object",
           "properties": {
            "ns": {
             "type": "array",
             "items": {
              "type": "object",
              "properties": {
               "target": {
                "type": "string",
                "description": "Name server hostname."
               },
               "ip": {
                "type": "string",
                "description": "IPv4 address of the name server."
               },
               "country_code": {
                "type": "string",
                "description": "Country code (e.g. US) of the name server IP address."
               },
               "country_name": {
                "type": "string",
                "description": "Country name of the name server IP address."
               },
               "isp": {
                "type": "string",
                "description": "Internet Service Provider (ISP) of the name server IP address."
               }
              }
             },
             "description": "NS records of the domain; each item has target, ip, country_code, country_name and isp."
            },
            "mx": {
             "type": "array",
             "items": {
              "type": "object",
              "properties": {
               "target": {
                "type": "string",
                "description": "Mail server hostname."
               },
               "ip": {
                "type": "string",
                "description": "IPv4 address of the mail server."
               },
               "country_code": {
                "type": "string",
                "description": "Country code (e.g. US) of the mail server IP address."
               },
               "country_name": {
                "type": "string",
                "description": "Country name of the mail server IP address."
               },
               "isp": {
                "type": "string",
                "description": "Internet Service Provider (ISP) of the mail server IP address."
               }
              }
             },
             "description": "MX records of the domain; each item has target, ip, country_code, country_name and isp."
            },
            "cname": {
             "type": "string",
             "description": "CNAME target of the host. Empty string if none."
            }
           }
          },
          "domain_blacklist": {
           "type": "object",
           "properties": {
            "engines": {
             "type": "object",
             "additionalProperties": {
              "type": "object",
              "properties": {
               "name": {
                "type": "string",
                "description": "Name of the scanning engine."
               },
               "detected": {
                "type": "boolean",
                "description": "Returns true if this engine flagged the submitted domain."
               },
               "reference": {
                "type": "string",
                "description": "Link to the engine's website or listing details."
               },
               "confidence": {
                "type": "string",
                "description": "Confidence of this engine detection, e.g. high."
               },
               "elapsed_ms": {
                "type": "integer",
                "description": "Time taken by this engine to complete its check, in milliseconds."
               }
              }
             },
             "description": "List of scanning engines; each item has name, detected, reference, confidence and elapsed_ms."
            },
            "detections": {
             "type": "integer",
             "description": "Number of scanning engines that detected the domain."
            },
            "engines_count": {
             "type": "integer",
             "description": "Number of scanning engines used to scan the domain."
            },
            "detection_rate": {
             "type": "string",
             "description": "Percentage of engines that detected the domain, e.g. 5%."
            },
            "scan_time_ms": {
             "type": "integer",
             "description": "Time taken to scan the domain across all engines, in milliseconds."
            }
           }
          },
          "ecommerce_platform": {
           "type": "object",
           "properties": {
            "is_shopify": {
             "type": "boolean",
             "description": "Returns true if the website runs on Shopify."
            },
            "is_woocommerce": {
             "type": "boolean",
             "description": "Returns true if the website runs on WooCommerce."
            },
            "is_opencart": {
             "type": "boolean",
             "description": "Returns true if the website runs on OpenCart."
            },
            "is_prestashop": {
             "type": "boolean",
             "description": "Returns true if the website runs on PrestaShop."
            },
            "is_magento": {
             "type": "boolean",
             "description": "Returns true if the website runs on Magento."
            },
            "is_zencart": {
             "type": "boolean",
             "description": "Returns true if the website runs on Zen Cart."
            },
            "is_other": {
             "type": "boolean",
             "description": "Returns true if the website runs on another known e-commerce platform."
            }
           }
          },
          "geo_location": {
           "type": "object",
           "properties": {
            "countries": {
             "type": "array",
             "items": {
              "type": "string"
             },
             "description": "List of potential countries of origin."
            }
           }
          },
          "html_info": {
           "type": "object",
           "properties": {
            "title": {
             "type": "string",
             "description": "Title of the page."
            },
            "description": {
             "type": "string",
             "description": "Meta description of the page."
            },
            "keywords": {
             "type": "string",
             "description": "Contents of the meta keywords tag."
            },
            "robots": {
             "type": "string",
             "description": "Robots meta tag of the page."
            },
            "canonical": {
             "type": "string",
             "description": "Canonical URL of the page."
            },
            "og_image": {
             "type": "string",
             "description": "Open Graph image URL of the page."
            },
            "article_publisher": {
             "type": "string",
             "description": "Contents of the article:publisher Open Graph tag. Empty string if none."
            },
            "og_site_name": {
             "type": "string",
             "description": "Open Graph site name of the page."
            },
            "twitter_site": {
             "type": "string",
             "description": "Twitter site handle of the page."
            },
            "generator": {
             "type": "string",
             "description": "CMS or framework from meta generator tag (e.g. WordPress)."
            },
            "ld_organization": {
             "type": "string",
             "description": "Organization name found in JSON-LD structured data."
            },
            "lang": {
             "type": "string",
             "description": "Language declared by the page, e.g. en-US."
            }
           }
          },
          "redirection": {
           "type": "object",
           "properties": {
            "found": {
             "type": "boolean",
             "description": "Returns true if the website redirects to another URL."
            },
            "external": {
             "type": "boolean",
             "description": "Returns true if the redirect points to an external host."
            },
            "url": {
             "type": "string",
             "description": "Destination URL of the redirect. Empty string if none."
            }
           }
          },
          "response_headers": {
           "type": "object",
           "properties": {
            "code": {
             "type": "integer"
            },
            "status": {
             "type": "string"
            },
            "content-type": {
             "type": "string"
            },
            "server": {
             "type": "string"
            },
            "date": {
             "type": "string"
            },
            "x-amz-rid": {
             "type": "string"
            },
            "set-cookie": {
             "type": "string"
            },
            "vary": {
             "type": "string"
            },
            "last-modified": {
             "type": "string"
            },
            "etag": {
             "type": "string"
            },
            "accept-ranges": {
             "type": "string"
            },
            "content-encoding": {
             "type": "string"
            },
            "strict-transport-security": {
             "type": "string"
            },
            "x-frame-options": {
             "type": "string"
            },
            "x-cache": {
             "type": "string"
            },
            "via": {
             "type": "string"
            },
            "x-amz-cf-pop": {
             "type": "string"
            },
            "alt-svc": {
             "type": "string"
            },
            "x-amz-cf-id": {
             "type": "string"
            }
           },
           "description": "HTTP response headers returned by the server, keyed by lowercase header name."
          },
          "security_checks": {
           "type": "object",
           "properties": {
            "is_suspended_site": {
             "type": "boolean",
             "description": "Returns true if the website appears suspended by the hosting provider."
            },
            "is_most_abused_tld": {
             "type": "boolean",
             "description": "Returns true if the domain TLD is risky, e.g. .top or .tk."
            },
            "is_robots_noindex": {
             "type": "boolean",
             "description": "Returns true if URL \"doesn't want\" to be indexed on Google."
            },
            "is_website_accessible": {
             "type": "boolean",
             "description": "Returns true if website is accessible by our servers (status code is 2xx or 3xx)."
            },
            "is_empty_page_content": {
             "type": "boolean",
             "description": "Returns true if website page content is empty."
            },
            "is_redirect_to_search_engine": {
             "type": "boolean",
             "description": "Returns true if website redirects to search engines, like google.com."
            },
            "is_suspicious_redirect": {
             "type": "boolean",
             "description": "Returns true if the redirect matches our suspicious redirect rules."
            },
            "http_status_code": {
             "type": "integer",
             "description": "HTTP status code returned by the website, e.g. 200."
            },
            "is_http_status_error": {
             "type": "boolean",
             "description": "Returns true if the HTTP status code is an error (4xx or 5xx)."
            },
            "is_http_server_error": {
             "type": "boolean",
             "description": "Returns true if the HTTP status code is a server error (5xx)."
            },
            "is_http_client_error": {
             "type": "boolean",
             "description": "Returns true if the HTTP status code is a client error (4xx)."
            },
            "is_empty_page_title": {
             "type": "boolean",
             "description": "Returns true if website page title is empty."
            },
            "is_ipv6_enabled": {
             "type": "boolean",
             "description": "Returns true if host has IPv6 AAAA records configured."
            },
            "is_domain_blacklisted": {
             "type": "boolean",
             "description": "Returns true if domain is blacklisted by trusted sources."
            },
            "is_suspicious_domain": {
             "type": "boolean",
             "description": "Returns true if domain matches our suspicious domain rules."
            },
            "is_sinkholed_domain": {
             "type": "boolean",
             "description": "Returns true if domain is sinkholed (malicious)."
            },
            "is_http_redirected_to_https": {
             "type": "boolean",
             "description": "Returns true if HTTP requests are redirected to HTTPS."
            },
            "is_directory_listing": {
             "type": "boolean",
             "description": "Returns true if website is a directory listing."
            },
            "is_domain_ipv4_assigned": {
             "type": "boolean",
             "description": "Returns true if the domain resolves to an assigned IPv4 address."
            },
            "is_domain_ipv4_private": {
             "type": "boolean",
             "description": "Returns true if the domain resolves to a private IPv4 address."
            },
            "is_domain_ipv4_loopback": {
             "type": "boolean",
             "description": "Returns true if the domain resolves to a loopback (e.g. 127.0.0.1) IPv4 address."
            },
            "is_domain_ipv4_reserved": {
             "type": "boolean",
             "description": "Returns true if the domain resolves to a reserved IPv4 address."
            },
            "is_domain_ipv4_valid": {
             "type": "boolean",
             "description": "Returns true if the domain resolves to a valid public IPv4 address."
            },
            "is_uncommon_host_length": {
             "type": "boolean",
             "description": "Returns true if the host length is uncommon (such as, a very long domain)."
            },
            "is_uncommon_dash_char_count": {
             "type": "boolean",
             "description": "Returns true if the host contains too many dash \"-\" characters."
            },
            "is_uncommon_dot_char_count": {
             "type": "boolean",
             "description": "Returns true if the host contains too many dot \".\" characters."
            },
            "is_email_configured": {
             "type": "boolean",
             "description": "Returns true if the domain has MX records configured to receive email."
            },
            "is_email_spoofable": {
             "type": "boolean",
             "description": "Returns true if the domain's email can be spoofed due to missing or weak SPF/DMARC configuration."
            },
            "is_dmarc_configured": {
             "type": "boolean",
             "description": "Returns true if the domain has a DMARC record."
            },
            "is_dmarc_enforced": {
             "type": "boolean",
             "description": "Returns true if the DMARC policy is enforced (p=quarantine or p=reject)."
            },
            "is_caa_configured": {
             "type": "boolean",
             "description": "Returns true if the domain has CAA records configured."
            },
            "is_external_redirect": {
             "type": "boolean",
             "description": "Returns true if the URL redirects to an external website."
            },
            "is_custom_404_configured": {
             "type": "boolean",
             "description": "Returns true if the website returns a custom 404 error page."
            },
            "is_valid_https": {
             "type": "boolean",
             "description": "Returns true if the URL HTTPS (SSL) is valid."
            },
            "is_ssl_blacklisted": {
             "type": "boolean",
             "description": "Returns true if the SSL certificate is blacklisted by trusted sources."
            },
            "is_ssl_expired": {
             "type": "boolean",
             "description": "Returns true if the SSL certificate is expired."
            },
            "is_ssl_revoked": {
             "type": "boolean",
             "description": "Returns true if the SSL certificate has been revoked."
            },
            "ssl_type": {
             "type": "string",
             "description": "SSL certificate type, can be Domain Validation, Organization Validation or Extended Validation."
            },
            "ssl_issuer_organization": {
             "type": "string",
             "description": "Organization that issued the SSL certificate, e.g. DigiCert Inc."
            },
            "ssl_issuer_country": {
             "type": "string",
             "description": "Country of the SSL certificate issuer."
            },
            "ssl_subject_organization": {
             "type": "string",
             "description": "Organization in the SSL certificate subject. Empty string if not present."
            },
            "ssl_subject_common_name": {
             "type": "string",
             "description": "Common Name (CN) in the SSL certificate subject."
            },
            "ssl_subject_country": {
             "type": "string",
             "description": "Country in the SSL certificate subject. Empty string if not present."
            },
            "is_hsts_header": {
             "type": "boolean",
             "description": "Returns true if the Strict-Transport-Security (HSTS) header is present."
            },
            "is_referrer_policy_header": {
             "type": "boolean",
             "description": "Returns true if the Referrer-Policy header is present."
            },
            "is_unsafe_url_in_referrer_policy_header": {
             "type": "boolean",
             "description": "Returns true if the Referrer-Policy header uses the unsafe-url value."
            },
            "is_csp_header": {
             "type": "boolean",
             "description": "Returns true if the Content-Security-Policy header is present."
            },
            "is_unsafe_eval_in_csp_header": {
             "type": "boolean",
             "description": "Returns true if the Content-Security-Policy header contains unsafe-eval."
            },
            "is_unsafe_inline_in_csp_header": {
             "type": "boolean",
             "description": "Returns true if the Content-Security-Policy header contains unsafe-inline."
            },
            "is_content_type_options_header": {
             "type": "boolean",
             "description": "Returns true if the X-Content-Type-Options header is present."
            },
            "is_frame_options_header": {
             "type": "boolean",
             "description": "Returns true if the X-Frame-Options header is present."
            },
            "is_xss_protection_header": {
             "type": "boolean",
             "description": "Returns true if the X-XSS-Protection header is present."
            },
            "is_permissions_policy_header": {
             "type": "boolean",
             "description": "Returns true if the Permissions-Policy header is present."
            },
            "is_set_cookie_header": {
             "type": "boolean",
             "description": "Returns true if the website sets cookies via the Set-Cookie header."
            },
            "is_secure_on_all_cookies": {
             "type": "boolean",
             "description": "Returns true if all cookies are set with the Secure attribute."
            },
            "is_server_header_exposing_version": {
             "type": "boolean",
             "description": "Returns true if the Server header exposes the software version."
            },
            "is_powered_by_header_exposed": {
             "type": "boolean",
             "description": "Returns true if the X-Powered-By header is exposed."
            },
            "is_aspnet_version_header_exposed": {
             "type": "boolean",
             "description": "Returns true if the X-AspNet-Version header is exposed."
            },
            "is_dnssec_enabled": {
             "type": "boolean",
             "description": "Returns true if DNSSEC is enabled for the domain."
            },
            "is_dnssec_signed": {
             "type": "boolean",
             "description": "Returns true if the DNS response is signed with DNSSEC."
            },
            "is_defaced_heuristic": {
             "type": "boolean",
             "description": "Returns true if website has been defaced (we use our own rules)."
            },
            "is_website_popular": {
             "type": "boolean",
             "description": "Returns true if the website is present in popular website rankings."
            },
            "is_domain_recent": {
             "type": "string",
             "description": "Returns \"yes\" if domain was created less than 6 months ago, can be yes/no/unknown."
            },
            "is_domain_very_recent": {
             "type": "string",
             "description": "Returns \"yes\" if domain was created less than 30 days ago, can be yes/no/unknown."
            },
            "domain_creation_date": {
             "type": "string",
             "description": "Domain registration date, format is Y-m-d (empty if unknown)."
            },
            "domain_age_in_days": {
             "type": "integer",
             "description": "Age of the domain in days (0 if unknown)."
            },
            "domain_age_in_months": {
             "type": "integer",
             "description": "Age of the domain in months (0 if unknown)."
            },
            "domain_age_in_years": {
             "type": "integer",
             "description": "Age of the domain in years (0 if unknown)."
            },
            "is_ecommerce_platform": {
             "type": "boolean",
             "description": "Returns true if the website is using an ecommerce platform like Shopify."
            },
            "is_high_discounts": {
             "type": "boolean",
             "description": "Returns true if the website is offering high discounts."
            },
            "is_fake_socials": {
             "type": "boolean",
             "description": "Returns true if the website is using fake social profiles."
            },
            "is_heuristic_pattern": {
             "type": "boolean",
             "description": "Returns true if our heuristic engine detected malicious patterns."
            },
            "is_free_email": {
             "type": "boolean",
             "description": "Returns true if website is using a free email like Gmail."
            },
            "is_risky_geo_location": {
             "type": "boolean",
             "description": "Returns true if website location is considered risky."
            },
            "is_china_country": {
             "type": "boolean",
             "description": "Returns true if website is potentially located in China."
            },
            "is_nigeria_country": {
             "type": "boolean",
             "description": "Returns true if website is potentially located in Nigeria."
            }
           }
          },
          "server_details": {
           "type": "object",
           "properties": {
            "ip": {
             "type": "string",
             "description": "IP address of the submitted host."
            },
            "hostname": {
             "type": "string",
             "description": "Reverse DNS hostname (PTR record) of the host's IP address. Empty string if none."
            },
            "continent_code": {
             "type": "string",
             "description": "Continent code (e.g. NA) of where the host's IP address is located."
            },
            "continent_name": {
             "type": "string",
             "description": "Continent name (e.g. North America) of where the host's IP address is located."
            },
            "country_code": {
             "type": "string",
             "description": "Country code (e.g. CN) of where the host's IP address is located."
            },
            "country_name": {
             "type": "string",
             "description": "Country name of where the host's IP address is located."
            },
            "region_name": {
             "type": "string",
             "description": "Region or state name of where the host's IP address is located."
            },
            "city_name": {
             "type": "string",
             "description": "City name of where the host's IP address is located."
            },
            "latitude": {
             "type": "number",
             "description": "Approximate latitude of the host's IP address."
            },
            "longitude": {
             "type": "number",
             "description": "Approximate longitude of the host's IP address."
            },
            "isp": {
             "type": "string",
             "description": "Internet Service Provider (ISP) of host's IP address."
            },
            "asn": {
             "type": "string",
             "description": "IP Autonomous System Number (ASN), such as AS16509."
            }
           }
          },
          "trust_score": {
           "type": "object",
           "properties": {
            "result": {
             "type": "integer",
             "description": "Returns trust score, a number between 0 (bad) and 100 (good)."
            }
           }
          },
          "url_parts": {
           "type": "object",
           "properties": {
            "scheme": {
             "type": "string",
             "description": "URL scheme: http or https."
            },
            "host": {
             "type": "string",
             "description": "Full hostname including subdomain (e.g. www.example.com)."
            },
            "host_nowww": {
             "type": "string",
             "description": "Hostname with the www. prefix stripped."
            },
            "port": {
             "type": "integer",
             "description": "Port number. Typically 80 for HTTP, 443 for HTTPS, or 0 if unspecified."
            },
            "path": {
             "type": "string",
             "description": "URL path component (e.g. /contact-us/)."
            },
            "query": {
             "type": "string",
             "description": "URL query string. Empty string if none."
            }
           }
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "host": "amazon.com",
         "dns_records": {
          "ns": [
           {
            "target": "ns1.amzndns.org",
            "ip": "156.154.66.10",
            "country_code": "US",
            "country_name": "United States of America",
            "isp": "Vercara LLC"
           },
           {
            "target": "ns2.amzndns.co.uk",
            "ip": "204.74.120.1",
            "country_code": "US",
            "country_name": "United States of America",
            "isp": "Vercara LLC"
           },
           {
            "target": "ns2.amzndns.com",
            "ip": "156.154.68.10",
            "country_code": "US",
            "country_name": "United States of America",
            "isp": "Vercara LLC"
           },
           {
            "target": "ns2.amzndns.net",
            "ip": "156.154.69.10",
            "country_code": "US",
            "country_name": "United States of America",
            "isp": "Vercara LLC"
           },
           {
            "target": "ns2.amzndns.org",
            "ip": "156.154.150.1",
            "country_code": "US",
            "country_name": "United States of America",
            "isp": "Vercara LLC"
           },
           {
            "target": "ns1.amzndns.co.uk",
            "ip": "156.154.67.10",
            "country_code": "US",
            "country_name": "United States of America",
            "isp": "Vercara LLC"
           },
           {
            "target": "ns1.amzndns.com",
            "ip": "156.154.64.10",
            "country_code": "US",
            "country_name": "United States of America",
            "isp": "Vercara LLC"
           }
          ],
          "mx": [
           {
            "target": "amazon-smtp.amazon.com",
            "ip": "52.28.202.117",
            "country_code": "DE",
            "country_name": "Germany",
            "isp": "A100 ROW GmbH"
           }
          ],
          "cname": ""
         },
         "domain_blacklist": {
          "engines": {
           "0": {
            "name": "ANJ Blocked Sites",
            "detected": false,
            "reference": "https://anj.fr/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "1": {
            "name": "AntiSocial Blacklist",
            "detected": false,
            "reference": "https://theantisocialengineer.com/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "2": {
            "name": "APVA",
            "detected": false,
            "reference": "https://www.antiphish.org/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "3": {
            "name": "Artists Against 419",
            "detected": false,
            "reference": "https://wiki.aa419.org/index.php/Main_Page",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "4": {
            "name": "AZORult Tracker",
            "detected": false,
            "reference": "https://azorult-tracker.net/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "5": {
            "name": "Badbitcoin",
            "detected": false,
            "reference": "https://badbitcoin.org/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "6": {
            "name": "Bambenek Consulting",
            "detected": false,
            "reference": "https://www.bambenekconsulting.com/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "7": {
            "name": "CERT Polska",
            "detected": false,
            "reference": "https://www.cert.pl/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "8": {
            "name": "COI CZ",
            "detected": false,
            "reference": "https://coi.gov.cz/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "9": {
            "name": "CryptoScamDB",
            "detected": false,
            "reference": "https://cryptoscamdb.org/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "10": {
            "name": "EtherAddressLookup",
            "detected": false,
            "reference": "https://github.com/409H/EtherAddressLookup/",
            "confidence": "high",
            "elapsed_ms": 0
           }
          },
          "detections": 0,
          "engines_count": 42,
          "detection_rate": "0%",
          "scan_time_ms": 120
         },
         "ecommerce_platform": {
          "is_shopify": false,
          "is_woocommerce": false,
          "is_opencart": false,
          "is_prestashop": false,
          "is_magento": false,
          "is_zencart": false,
          "is_other": false
         },
         "geo_location": {
          "countries": [
           "US",
           "DE"
          ]
         },
         "html_info": {
          "title": "Amazon.com. Spend less. Smile more.",
          "description": "Free shipping on millions of items. Get the best of Shopping and Entertainment with Prime. Enjoy low prices and great deals on the largest selection of everyday essentials and other products, including fashion, home, beauty, electronics, Alexa Devices, sporting goods, toys, automotive, pets, baby, books, video games, musical instruments, office supplies, and more.",
          "keywords": "Amazon, Amazon.com, Books, Online Shopping, Book Store, Magazine, Subscription, Music, CDs, DVDs, Videos, Electronics, Video Games, Computers, Cell Phones, Toys, Games, Apparel, Accessories, Shoes, Jewelry, Watches, Office Products, Sports & Outdoors, Sporting Goods, Baby Products, Health, Personal Care, Beauty, Home, Garden, Bed & Bath, Furniture, Tools, Hardware, Vacuums, Outdoor Living, Automotive Parts, Pet Supplies, Broadband, DSL",
          "robots": "",
          "canonical": "https://www.amazon.com/",
          "og_image": "https://m.media-amazon.com/images/I/31epF-8N9LL.png",
          "article_publisher": "",
          "og_site_name": "",
          "twitter_site": "",
          "generator": "",
          "ld_organization": "",
          "lang": "en-us"
         },
         "redirection": {
          "found": false,
          "external": false,
          "url": ""
         },
         "response_headers": {
          "code": 200,
          "status": "HTTP/2 200",
          "content-type": "text/html",
          "server": "Server",
          "date": "Tue, 23 Dec 2025 16:13:51 GMT",
          "x-amz-rid": "E158SRJTEWGJ2DDFSFZ4",
          "set-cookie": "skin=noskin; path=/; domain=.amazon.com",
          "vary": "Content-Type,Accept-Encoding,User-Agent",
          "last-modified": "Tue, 23 Dec 2025 16:13:48 GMT",
          "etag": "\"178e45-646a0d4277060-gzip\"",
          "accept-ranges": "bytes",
          "content-encoding": "gzip",
          "strict-transport-security": "max-age=47474747; includeSubDomains; preload",
          "x-frame-options": "SAMEORIGIN",
          "x-cache": "Miss from cloudfront",
          "via": "1.1 d31c4c288ffef497f9a848a4bcb51e54.cloudfront.net (CloudFront)",
          "x-amz-cf-pop": "ATL58-P3",
          "alt-svc": "h3=\":443\"; ma=86400",
          "x-amz-cf-id": "gKbTOmeZcd0lzdM2oZoxnX0vlyLpN0x8zH3z1E-hZ0haAS0ilEubwg=="
         },
         "security_checks": {
          "is_suspended_site": false,
          "is_most_abused_tld": false,
          "is_robots_noindex": false,
          "is_website_accessible": true,
          "is_empty_page_content": false,
          "is_redirect_to_search_engine": false,
          "is_suspicious_redirect": false,
          "http_status_code": 200,
          "is_http_status_error": false,
          "is_http_server_error": false,
          "is_http_client_error": false,
          "is_empty_page_title": false,
          "is_ipv6_enabled": false,
          "is_domain_blacklisted": false,
          "is_suspicious_domain": false,
          "is_sinkholed_domain": false,
          "is_http_redirected_to_https": true,
          "is_directory_listing": false,
          "is_domain_ipv4_assigned": true,
          "is_domain_ipv4_private": false,
          "is_domain_ipv4_loopback": false,
          "is_domain_ipv4_reserved": false,
          "is_domain_ipv4_valid": true,
          "is_uncommon_host_length": false,
          "is_uncommon_dash_char_count": false,
          "is_uncommon_dot_char_count": false,
          "is_email_configured": true,
          "is_email_spoofable": true,
          "is_dmarc_configured": true,
          "is_dmarc_enforced": true,
          "is_caa_configured": false,
          "is_external_redirect": false,
          "is_custom_404_configured": true,
          "is_valid_https": true,
          "is_ssl_blacklisted": false,
          "is_ssl_expired": false,
          "is_ssl_revoked": false,
          "ssl_type": "Domain Validation",
          "ssl_issuer_organization": "DigiCert Inc",
          "ssl_issuer_country": "US",
          "ssl_subject_organization": "",
          "ssl_subject_common_name": "www.amazon.com",
          "ssl_subject_country": "",
          "is_hsts_header": true,
          "is_referrer_policy_header": false,
          "is_unsafe_url_in_referrer_policy_header": false,
          "is_csp_header": false,
          "is_unsafe_eval_in_csp_header": false,
          "is_unsafe_inline_in_csp_header": false,
          "is_content_type_options_header": false,
          "is_frame_options_header": true,
          "is_xss_protection_header": false,
          "is_permissions_policy_header": false,
          "is_set_cookie_header": true,
          "is_secure_on_all_cookies": false,
          "is_server_header_exposing_version": false,
          "is_powered_by_header_exposed": false,
          "is_aspnet_version_header_exposed": false,
          "is_dnssec_enabled": false,
          "is_dnssec_signed": false,
          "is_defaced_heuristic": false,
          "is_website_popular": true,
          "is_domain_recent": "no",
          "is_domain_very_recent": "no",
          "domain_creation_date": "1994-11-01",
          "domain_age_in_days": 11375,
          "domain_age_in_months": 366,
          "domain_age_in_years": 31,
          "is_ecommerce_platform": false,
          "is_high_discounts": false,
          "is_fake_socials": false,
          "is_heuristic_pattern": false,
          "is_free_email": false,
          "is_risky_geo_location": false,
          "is_china_country": false,
          "is_nigeria_country": false
         },
         "server_details": {
          "ip": "98.82.161.185",
          "hostname": "ec2-98-82-161-185.compute-1.amazonaws.com",
          "continent_code": "NA",
          "continent_name": "North America",
          "country_code": "US",
          "country_name": "United States of America",
          "region_name": "Virginia",
          "city_name": "Ashburn",
          "latitude": 39.039474,
          "longitude": -77.491809,
          "isp": "Amazon Technologies Inc.",
          "asn": "AS14618"
         },
         "trust_score": {
          "result": 100
         },
         "url_parts": {
          "scheme": "https",
          "host": "www.amazon.com",
          "host_nowww": "amazon.com",
          "port": 443,
          "path": "/",
          "query": ""
         },
         "elapsed_ms": 3123
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 10,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "host": {
          "type": "string",
          "description": "Host to submit, e.g. amazon.com (without the www)."
         }
        },
        "required": [
         "host"
        ]
       },
       "example": {
        "host": "amazon.com"
       }
      }
     }
    }
   }
  },
  "/spf-validator": {
   "post": {
    "operationId": "spf_validator",
    "tags": [
     "SPF Validator API"
    ],
    "summary": "SPF Validator API",
    "description": "Validate the SPF record of a domain: check the record syntax, lookup count and common issues, and verify if an IP is authorized to send emails for the domain.\n\nConsumes 5 credits per successful request (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/spf-validator-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/spf-validator-api/",
     "description": "SPF Validator API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "host": {
           "type": "string",
           "description": "Host submitted for the SPF check."
          },
          "has_spf_record": {
           "type": "boolean",
           "description": "Returns true if TXT SPF1 record is found."
          },
          "dns_lookups_num": {
           "type": "integer",
           "description": "Number of DNS lookups performed."
          },
          "spf_record": {
           "type": "string",
           "description": "TXT SPF1 record, e.g. v=spf1 redirect=_spf.google.com."
          },
          "spf_records_list": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "record": {
              "type": "string",
              "description": "The SPF record analyzed."
             },
             "origin": {
              "type": "string",
              "description": "Domain where this SPF record was found (followed via include or redirect)."
             },
             "chars_num": {
              "type": "integer",
              "description": "Number of characters in the SPF record."
             },
             "use_macro": {
              "type": "boolean",
              "description": "Returns true if this SPF record uses macros."
             },
             "domains": {
              "type": "array",
              "items": {
               "type": "string"
              },
              "description": "Domains referenced by this SPF record via include and redirect."
             },
             "authorized_ips": {
              "type": "object",
              "properties": {
               "ipv4": {
                "type": "array",
                "items": {
                 "type": "string"
                },
                "description": "IPv4 addresses and ranges authorized by this SPF record."
               },
               "ipv6": {
                "type": "array",
                "items": {
                 "type": "string"
                },
                "description": "IPv6 addresses and ranges authorized by this SPF record."
               }
              }
             }
            }
           },
           "description": "Array with details of each recursively-analyzed SPF record."
          },
          "domains_extracted": {
           "type": "array",
           "items": {
            "type": "string"
           },
           "description": "Array of domains extracted from include and redirect modifier."
          },
          "authorized_ips": {
           "type": "object",
           "properties": {
            "ipv4": {
             "type": "array",
             "items": {
              "type": "string"
             },
             "description": "All IPv4 addresses and ranges authorized to send email for the domain."
            },
            "ipv6": {
             "type": "array",
             "items": {
              "type": "string"
             },
             "description": "All IPv6 addresses and ranges authorized to send email for the domain."
            }
           },
           "description": "Authorized sender addresses, grouped into ipv4 and ipv6 arrays."
          },
          "issues_found": {
           "type": "array",
           "items": {},
           "description": "Array of issues found, the \"code\" field can be SPF_NOT_FOUND, MULTIPLE_SPF_RECORDS, PTR_DEPRECATED, UPPERCASE_CHARACTERS, PLUS_ALL_FOUND, RECORD_TERMINATION_MISSING, DATA_AFTER_ALL, DATA_AFTER_REDIRECT, MULTIPLE_FALLBACKS, TOO_MANY_DNS_LOOKUPS, MULTIPLE_SPFV1_ON_SAME_RECORD, DUPLICATE_INCLUDE."
          },
          "spf_valid": {
           "type": "boolean",
           "description": "Returns true if the SPF1 record is valid."
          },
          "has_issues": {
           "type": "boolean",
           "description": "Returns true if we found issues on the SPF record."
          },
          "macros_found": {
           "type": "boolean",
           "description": "Returns true if macros were found in any of the analyzed SPF records."
          },
          "ip_pass": {
           "type": "boolean",
           "description": "Returns true if the IP submitted via \"iptest\" is authorized (ignore this field if you didn't set \"iptest\")."
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "host": "gmail.com",
         "has_spf_record": true,
         "dns_lookups_num": 4,
         "spf_record": "v=spf1 redirect=_spf.google.com",
         "spf_records_list": [
          {
           "record": "v=spf1 redirect=_spf.google.com",
           "origin": "gmail.com",
           "chars_num": 31,
           "use_macro": false,
           "domains": [
            "_spf.google.com"
           ]
          },
          {
           "record": "v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all",
           "origin": "_spf.google.com",
           "chars_num": 103,
           "use_macro": false,
           "domains": [
            "_netblocks.google.com",
            "_netblocks2.google.com",
            "_netblocks3.google.com"
           ]
          },
          {
           "record": "v=spf1 ip4:35.190.247.0/24 ip4:64.233.160.0/19 ip4:66.102.0.0/20 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:74.125.0.0/16 ip4:108.177.8.0/21 ip4:173.194.0.0/16 ip4:209.85.128.0/17 ip4:216.58.192.0/19 ip4:216.239.32.0/19 ~all",
           "authorized_ips": {
            "ipv4": [
             "35.190.247.0/24",
             "64.233.160.0/19",
             "66.102.0.0/20",
             "66.249.80.0/20",
             "72.14.192.0/18",
             "74.125.0.0/16",
             "108.177.8.0/21",
             "173.194.0.0/16",
             "209.85.128.0/17",
             "216.58.192.0/19",
             "216.239.32.0/19"
            ]
           },
           "origin": "_netblocks.google.com",
           "chars_num": 223,
           "use_macro": false
          },
          {
           "record": "v=spf1 ip6:2001:4860:4000::/36 ip6:2404:6800:4000::/36 ip6:2607:f8b0:4000::/36 ip6:2800:3f0:4000::/36 ip6:2a00:1450:4000::/36 ip6:2c0f:fb50:4000::/36 ~all",
           "authorized_ips": {
            "ipv6": [
             "2001:4860:4000::/36",
             "2404:6800:4000::/36",
             "2607:f8b0:4000::/36",
             "2800:3f0:4000::/36",
             "2a00:1450:4000::/36",
             "2c0f:fb50:4000::/36"
            ]
           },
           "origin": "_netblocks2.google.com",
           "chars_num": 154,
           "use_macro": false
          },
          {
           "record": "v=spf1 ip4:172.217.0.0/19 ip4:172.217.32.0/20 ip4:172.217.128.0/19 ip4:172.217.160.0/20 ip4:172.217.192.0/19 ip4:172.253.56.0/21 ip4:172.253.112.0/20 ip4:108.177.96.0/19 ip4:35.191.0.0/16 ip4:130.211.0.0/22 ~all",
           "authorized_ips": {
            "ipv4": [
             "172.217.0.0/19",
             "172.217.32.0/20",
             "172.217.128.0/19",
             "172.217.160.0/20",
             "172.217.192.0/19",
             "172.253.56.0/21",
             "172.253.112.0/20",
             "108.177.96.0/19",
             "35.191.0.0/16",
             "130.211.0.0/22"
            ]
           },
           "origin": "_netblocks3.google.com",
           "chars_num": 211,
           "use_macro": false
          }
         ],
         "domains_extracted": [
          "_spf.google.com",
          "_netblocks.google.com",
          "_netblocks2.google.com",
          "_netblocks3.google.com"
         ],
         "authorized_ips": {
          "ipv4": [
           "35.190.247.0/24",
           "64.233.160.0/19",
           "66.102.0.0/20",
           "66.249.80.0/20",
           "72.14.192.0/18",
           "74.125.0.0/16",
           "108.177.8.0/21",
           "173.194.0.0/16",
           "209.85.128.0/17",
           "216.58.192.0/19",
           "216.239.32.0/19",
           "172.217.0.0/19",
           "172.217.32.0/20",
           "172.217.128.0/19",
           "172.217.160.0/20",
           "172.217.192.0/19",
           "172.253.56.0/21",
           "172.253.112.0/20",
           "108.177.96.0/19",
           "35.191.0.0/16",
           "130.211.0.0/22"
          ],
          "ipv6": [
           "2001:4860:4000::/36",
           "2404:6800:4000::/36",
           "2607:f8b0:4000::/36",
           "2800:3f0:4000::/36",
           "2a00:1450:4000::/36",
           "2c0f:fb50:4000::/36"
          ]
         },
         "issues_found": [],
         "spf_valid": true,
         "has_issues": false,
         "macros_found": false,
         "ip_pass": true,
         "elapsed_ms": 58
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 5,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "host": {
          "type": "string",
          "description": "Host to submit, e.g. gmail.com."
         },
         "iptest": {
          "type": "string",
          "description": "IPv4 or IPv6 address to test: the response tells you whether it is authorized to send email for the domain."
         }
        },
        "required": [
         "host"
        ]
       },
       "example": {
        "host": "gmail.com"
       }
      }
     }
    }
   }
  },
  "/ssl-info": {
   "post": {
    "operationId": "ssl_info",
    "tags": [
     "SSL Info API"
    ],
    "summary": "SSL Info API",
    "description": "Get detailed SSL certificate information of a host: owner, issuer, validity dates, and more.\n\nConsumes 1 credit per successful request (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/ssl-info-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/ssl-info-api/",
     "description": "SSL Info API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "host": {
           "type": "string",
           "description": "Host submitted for the SSL check."
          },
          "port": {
           "type": "integer",
           "description": "Port used for the SSL connection, e.g. 443."
          },
          "certificate": {
           "type": "object",
           "properties": {
            "found": {
             "type": "boolean",
             "description": "Returns true if a SSL certificate was found."
            },
            "debug_message": {
             "type": "string",
             "description": "Debug or error details about the request, if any. Empty string if none."
            },
            "fingerprint_sha1": {
             "type": "string",
             "description": "SHA-1 fingerprint of the certificate."
            },
            "fingerprint_sha256": {
             "type": "string",
             "description": "SHA-256 fingerprint of the certificate."
            },
            "type": {
             "type": "string",
             "description": "SSL certificate type, can be Domain Validation, Organization Validation or Extended Validation."
            },
            "deprecated_issuer": {
             "type": "boolean",
             "description": "Returns true if the certificate was issued by a deprecated or distrusted certificate authority."
            },
            "name_match": {
             "type": "boolean",
             "description": "Returns true if the certificate matches the submitted host name."
            },
            "blacklisted": {
             "type": "boolean",
             "description": "Returns true if SSL certificate is blacklisted by SSLBL."
            },
            "self_signed": {
             "type": "boolean",
             "description": "Returns true if the certificate is self-signed."
            },
            "expired": {
             "type": "boolean",
             "description": "Returns true if the certificate is expired."
            },
            "revoked": {
             "type": "boolean",
             "description": "Returns true if the certificate has been revoked."
            },
            "valid": {
             "type": "boolean",
             "description": "Returns true if SSL certificate is valid."
            },
            "details": {
             "type": "object",
             "properties": {
              "subject": {
               "type": "object",
               "properties": {
                "name": {
                 "type": "string",
                 "description": "Full subject distinguished name (DN) of the certificate."
                },
                "common_name": {
                 "type": "string",
                 "description": "Common Name (CN) of the certificate subject."
                },
                "alternative_names": {
                 "type": "string",
                 "description": "Subject Alternative Names (SANs) covered by the certificate, comma-separated."
                },
                "organization_unit": {
                 "type": "array",
                 "items": {},
                 "description": "Organizational Unit (OU) entries of the subject. Empty array if none."
                },
                "organization": {
                 "type": "string",
                 "description": "Organization (O) of the certificate subject. Empty string if not present."
                },
                "category": {
                 "type": "string",
                 "description": "Subject category for EV certificates, e.g. Private Organization. Empty string if not present."
                },
                "country": {
                 "type": "string",
                 "description": "Country (C) of the certificate subject. Empty string if not present."
                },
                "street": {
                 "type": "array",
                 "items": {},
                 "description": "Street address entries of the subject. Empty array if none."
                },
                "postal_code": {
                 "type": "string",
                 "description": "Postal code of the subject. Empty string if not present."
                },
                "state": {
                 "type": "string",
                 "description": "State or province (ST) of the certificate subject. Empty string if not present."
                },
                "location": {
                 "type": "string",
                 "description": "Locality (L) of the certificate subject. Empty string if not present."
                },
                "serial_number": {
                 "type": "string",
                 "description": "Subject serial number, typically present on EV certificates. Empty string if not present."
                },
                "inc_country": {
                 "type": "string",
                 "description": "Jurisdiction country of incorporation for EV certificates. Empty string if not present."
                },
                "inc_state": {
                 "type": "string",
                 "description": "Jurisdiction state of incorporation for EV certificates. Empty string if not present."
                }
               }
              },
              "issuer": {
               "type": "object",
               "properties": {
                "common_name": {
                 "type": "string",
                 "description": "Common Name (CN) of the certificate issuer."
                },
                "organization": {
                 "type": "string",
                 "description": "Organization (O) of the certificate issuer."
                },
                "country": {
                 "type": "string",
                 "description": "Country (C) of the certificate issuer."
                },
                "state": {
                 "type": "string",
                 "description": "State or province (ST) of the certificate issuer. Empty string if not present."
                },
                "location": {
                 "type": "string",
                 "description": "Locality (L) of the certificate issuer. Empty string if not present."
                },
                "organization_unit": {
                 "type": "array",
                 "items": {},
                 "description": "Organizational Unit (OU) entries of the issuer. Empty array if none."
                }
               }
              },
              "public_key": {
               "type": "object",
               "properties": {
                "algorithm": {
                 "type": "string",
                 "description": "Public key algorithm, e.g. RSA or ECDSA."
                },
                "size": {
                 "type": "integer",
                 "description": "Public key size, in bits (e.g. 2048)."
                }
               }
              },
              "crl_endpoints": {
               "type": "array",
               "items": {
                "type": "string"
               },
               "description": "Certificate Revocation List (CRL) distribution point URLs."
              },
              "signature": {
               "type": "object",
               "properties": {
                "serial": {
                 "type": "string",
                 "description": "Certificate serial number, in decimal."
                },
                "serial_hex": {
                 "type": "string",
                 "description": "Certificate serial number, in hexadecimal (same format as openssl x509 -serial)."
                },
                "type": {
                 "type": "string",
                 "description": "Signature algorithm of the certificate, e.g. SHA256-RSA."
                }
               }
              },
              "validity": {
               "type": "object",
               "properties": {
                "days_left": {
                 "type": "integer",
                 "description": "Days remaining until the certificate expires."
                },
                "expired_from_days": {
                 "type": "integer",
                 "description": "Days since the certificate expired; 0 if not expired."
                },
                "valid_from": {
                 "type": "string",
                 "description": "Start of the certificate validity period (UTC)."
                },
                "valid_to": {
                 "type": "string",
                 "description": "End of the certificate validity period (UTC)."
                },
                "valid_from_timestamp": {
                 "type": "integer",
                 "description": "Start of the validity period, as Unix timestamp."
                },
                "valid_to_timestamp": {
                 "type": "integer",
                 "description": "End of the validity period, as Unix timestamp."
                }
               }
              },
              "certificate_authority": {
               "type": "boolean",
               "description": "Returns true if the certificate is a CA certificate."
              },
              "authority_key_id": {
               "type": "string",
               "description": "Authority Key Identifier (AKID) extension value."
              },
              "subject_key_id": {
               "type": "string",
               "description": "Subject Key Identifier (SKID) extension value."
              },
              "key_usages": {
               "type": "array",
               "items": {
                "type": "string"
               },
               "description": "Key usages allowed by the certificate, e.g. Digital Signature."
              },
              "extended_key_usages": {
               "type": "array",
               "items": {
                "type": "string"
               },
               "description": "Extended key usages of the certificate, e.g. Server Authentication."
              },
              "authority_info": {
               "type": "array",
               "items": {
                "type": "object",
                "properties": {
                 "location": {
                  "type": "string",
                  "description": "URL of the AIA endpoint."
                 },
                 "method": {
                  "type": "string",
                  "description": "AIA access method: CA Issuers or OCSP."
                 }
                }
               },
               "description": "Authority Information Access (AIA) endpoints; each item has method and location."
              }
             }
            }
           }
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "host": "paypal.com",
         "port": 443,
         "certificate": {
          "found": true,
          "debug_message": "",
          "fingerprint_sha1": "6f55d7d0b407cb6bb13bd14a1cbb105c0ee5c3d5",
          "fingerprint_sha256": "faf941ad6b7339463bcea590e77e39f7930a168eb6d130d79c3be12c5de83894",
          "type": "Extended Validation",
          "deprecated_issuer": false,
          "name_match": true,
          "blacklisted": false,
          "self_signed": false,
          "expired": false,
          "revoked": false,
          "valid": true,
          "details": {
           "subject": {
            "name": "SERIALNUMBER=3014267,CN=paypal.com,O=PayPal\\, Inc.,L=San Jose,ST=California,C=US,2.5.4.15=#131450726976617465204f7267616e697a6174696f6e,1.3.6.1.4.1.311.60.2.1.2=#130844656c6177617265,1.3.6.1.4.1.311.60.2.1.3=#13025553",
            "common_name": "paypal.com",
            "alternative_names": "paypal.com, paypal-workplace.com, xoom-experience.com, www.curv.cc, buyindiaonline.com, www.curv.co, curv.co, xoom.com, venmo-experience.com, sandbox.paypal.com, paypal.me, curv.cc, simility.com, paypal-experience.com, www.paypal.biz, www.simility.com, paypal.biz, cash2india.com, pypl.com, fastlane.paypal.com, paypal.co.uk, paypal.com.tr, paypal.ca, paypal-promo.es, paypal-marketing.co.uk, paypal-sverige.se, paypalgivingfund.org, paypal.com.hk, paypal.com.tw, paypalobjects.com, paypal-partners.com, paypal.se, PAYPAL.CO, paypal-nakit.com, paypal-mktg.com, paypal-marketing.ca, paypal-communications.com, paypal.fr, paypal.jp, paypal.no, paypal-donations.co.uk, paypal.be, paypal-passport.com, paypal.fi, paypal.nl, paypal-latam.com, paypal.vn, paypal-gifts.com, paypal.co.za, PAYPAL-MARKETING.PL, paypal.at, paypal-australia.com.au, paypal.co.in, paypal-danmark.dk, paypal-turkiye.com, paypal.co.il, paypal.com.cn, paypal-prepagata.com, paypal.es, paypal.eu, paypal.it, paypal.com.pe, paypal.in, paypal-business.com.au, paypal.co.id, paypal-globalshops.com, paypal-optimizer.com, paypal-mena.com, paypal-donations.com, paypal.ie, paypal.co.nz, paypal-media.com, paypal-information.com, paypal.com.sa, paypal-knowledge.com, paypal-businesscenter.com, paypal-community.com, PAYPAL-DEUTSCHLAND.DE, paypal.lu, PAYPAL.COM.MY, paypal.com.sg, paypal.dk, paypal.com.br, paypal.de, paypal-knowledge-test.com, paypal.pt, paypal.co.th, thepaypalblog.com, paypal-norge.no, paypal.pl, paypal.ph, paypal.com.ve, paypal.com.mx, paypal.cl, paypal-business.co.uk, paypal.com.au, paypalbenefits.com, paypal.ch, paypal.com.ar, paypal-support.com",
            "organization_unit": [],
            "organization": "PayPal, Inc.",
            "category": "Private Organization",
            "country": "US",
            "street": [],
            "postal_code": "",
            "state": "California",
            "location": "San Jose",
            "serial_number": "3014267",
            "inc_country": "US",
            "inc_state": "Delaware"
           },
           "issuer": {
            "common_name": "DigiCert EV RSA CA G2",
            "organization": "DigiCert Inc",
            "country": "US",
            "state": "",
            "location": "",
            "organization_unit": []
           },
           "public_key": {
            "algorithm": "RSA",
            "size": 2048
           },
           "crl_endpoints": [
            "http://crl3.digicert.com/DigiCertEVRSACAG2.crl",
            "http://crl4.digicert.com/DigiCertEVRSACAG2.crl"
           ],
           "signature": {
            "serial": "14728578715614846917259483520735530892",
            "serial_hex": "0B149EFF02F1C650CF59029012764F8C",
            "type": "SHA256-RSA"
           },
           "validity": {
            "days_left": 269,
            "expired_from_days": 0,
            "valid_from": "Mon, 26 Aug 2024 00:00:00 UTC",
            "valid_to": "Mon, 25 Aug 2025 23:59:59 UTC",
            "valid_from_timestamp": 1724630400,
            "valid_to_timestamp": 1756166399
           },
           "certificate_authority": false,
           "authority_key_id": "301680146a4e50bf98689d5b7b2075d45901794866923206",
           "subject_key_id": "04148d939fbf9c7cf8ba64066baa73bb814351b7dc41",
           "key_usages": [
            "Digital Signature",
            "Key Encipherment"
           ],
           "extended_key_usages": [
            "Server Authentication",
            "Client Authentication"
           ],
           "authority_info": [
            {
             "location": "http://ocsp.digicert.com",
             "method": "OCSP"
            },
            {
             "location": "http://cacerts.digicert.com/DigiCertEVRSACAG2.crt",
             "method": "CA Issuers"
            }
           ]
          }
         },
         "elapsed_ms": 289
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 1,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "host": {
          "type": "string",
          "description": "Host to submit, e.g. google.com."
         },
         "port": {
          "type": "integer",
          "description": "SSL port to check. Must be between 443 and 65535.",
          "default": 443
         }
        },
        "required": [
         "host"
        ]
       },
       "example": {
        "host": "paypal.com"
       }
      }
     }
    }
   }
  },
  "/tls-check": {
   "post": {
    "operationId": "tls_check",
    "tags": [
     "TLS Check API"
    ],
    "summary": "TLS Check API",
    "description": "Check which SSL/TLS protocol versions a host supports (SSLv2 to TLSv1.3), detect deprecated protocols, get an overall score, and optionally scan cipher suites.\n\nConsumes 4 credits per successful request (non-200 responses never consume credits). Can take up to 60 seconds; set your client timeout accordingly. Full reference: https://docs.apivoid.com/tls-check-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/tls-check-api/",
     "description": "TLS Check API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "host": {
           "type": "string",
           "description": "Host submitted for the TLS check."
          },
          "ip": {
           "type": "string",
           "description": "IP address the host resolved to."
          },
          "port": {
           "type": "integer",
           "description": "Port used for the TLS check, e.g. 443."
          },
          "protocols": {
           "type": "object",
           "properties": {
            "sslv2": {
             "type": "object",
             "properties": {
              "enabled": {
               "type": "boolean"
              },
              "recommended_status": {
               "type": "string"
              },
              "deprecated": {
               "type": "boolean"
              }
             }
            },
            "sslv3": {
             "type": "object",
             "properties": {
              "enabled": {
               "type": "boolean"
              },
              "recommended_status": {
               "type": "string"
              },
              "deprecated": {
               "type": "boolean"
              }
             }
            },
            "tlsv1.0": {
             "type": "object",
             "properties": {
              "enabled": {
               "type": "boolean"
              },
              "recommended_status": {
               "type": "string"
              },
              "deprecated": {
               "type": "boolean"
              }
             }
            },
            "tlsv1.1": {
             "type": "object",
             "properties": {
              "enabled": {
               "type": "boolean"
              },
              "recommended_status": {
               "type": "string"
              },
              "deprecated": {
               "type": "boolean"
              }
             }
            },
            "tlsv1.2": {
             "type": "object",
             "properties": {
              "enabled": {
               "type": "boolean"
              },
              "recommended_status": {
               "type": "string"
              },
              "deprecated": {
               "type": "boolean"
              }
             }
            },
            "tlsv1.3": {
             "type": "object",
             "properties": {
              "enabled": {
               "type": "boolean"
              },
              "recommended_status": {
               "type": "string"
              },
              "deprecated": {
               "type": "boolean"
              }
             }
            }
           },
           "description": "Status of each SSL/TLS protocol version, keyed by protocol name.",
           "additionalProperties": {
            "type": "object",
            "properties": {
             "enabled": {
              "type": "boolean",
              "description": "Returns true if the protocol version is enabled on the server."
             },
             "recommended_status": {
              "type": "string",
              "description": "Recommended status for the protocol, can be enabled/disabled."
             },
             "deprecated": {
              "type": "boolean",
              "description": "Returns true if the protocol version is deprecated."
             }
            }
           }
          },
          "connected": {
           "type": "boolean",
           "description": "Returns true if a TLS connection to the server was established."
          },
          "score": {
           "type": "string",
           "description": "Overall TLS configuration score, e.g. excellent, moderate, poor."
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          },
          "ciphers": {
           "type": "object",
           "description": "Supported ciphers grouped by protocol version, keyed by protocol name (e.g. tlsv1.2, tlsv1.3).",
           "additionalProperties": {
            "type": "object",
            "properties": {
             "ciphers": {
              "type": "array",
              "items": {},
              "description": "List of ciphers tested for this protocol; each item has name, hex_code, supported, key_exchange, bits and forward_secrecy."
             },
             "summary": {
              "type": "object",
              "properties": {
               "insecure_cipher_count": {
                "type": "integer",
                "description": "Number of insecure ciphers supported."
               },
               "weak_cipher_count": {
                "type": "integer",
                "description": "Number of weak ciphers supported."
               },
               "strong_cipher_count": {
                "type": "integer",
                "description": "Number of strong ciphers supported."
               },
               "total_supported": {
                "type": "integer",
                "description": "Total number of ciphers supported for this protocol."
               }
              }
             }
            }
           }
          },
          "protocol_details": {
           "type": "object",
           "properties": {
            "secure_renegotiation": {
             "type": "boolean",
             "description": "Returns true if secure renegotiation is supported."
            },
            "forward_secrecy": {
             "type": "boolean",
             "description": "Returns true if forward secrecy is supported."
            },
            "rc4": {
             "type": "boolean",
             "description": "Returns true if RC4 ciphers are supported."
            },
            "ocsp_stapling": {
             "type": "boolean",
             "description": "Returns true if OCSP stapling is enabled."
            },
            "alpn": {
             "type": "boolean",
             "description": "Returns true if ALPN is supported."
            },
            "alpn_protocols": {
             "type": "array",
             "items": {},
             "description": "ALPN protocols advertised by the server, e.g. h2."
            }
           }
          }
         }
        },
        "example": {
         "host": "stripe.com",
         "ip": "198.202.176.231",
         "port": 443,
         "protocols": {
          "sslv2": {
           "enabled": false,
           "recommended_status": "disabled",
           "deprecated": true
          },
          "sslv3": {
           "enabled": false,
           "recommended_status": "disabled",
           "deprecated": true
          },
          "tlsv1.0": {
           "enabled": false,
           "recommended_status": "disabled",
           "deprecated": true
          },
          "tlsv1.1": {
           "enabled": false,
           "recommended_status": "disabled",
           "deprecated": true
          },
          "tlsv1.2": {
           "enabled": true,
           "recommended_status": "enabled",
           "deprecated": false
          },
          "tlsv1.3": {
           "enabled": true,
           "recommended_status": "enabled",
           "deprecated": false
          }
         },
         "connected": true,
         "score": "excellent",
         "elapsed_ms": 745
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 4,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "host": {
          "type": "string",
          "description": "Host to submit, e.g. google.com."
         },
         "port": {
          "type": "integer",
          "description": "TLS port to check. Must be between 443 and 65535.",
          "default": 443
         },
         "scan_ciphers": {
          "type": "boolean",
          "description": "Enable cipher suite scanning for all TLS protocols. Available on the Growth Plan and above. New response fields (when enabled): ciphers protocol_details. (+1 Credit)",
          "default": false
         }
        },
        "required": [
         "host"
        ]
       },
       "example": {
        "host": "stripe.com"
       }
      }
     }
    }
   }
  },
  "/tor-test": {
   "post": {
    "operationId": "tor_test",
    "tags": [
     "Tor Test API"
    ],
    "summary": "Tor Test API",
    "description": "Check if a website is accessible from the Tor network: the URL is requested through a Tor exit node and the API returns the HTTP status code, response headers and page details as seen from Tor. Useful to verify whether a site blocks or challenges Tor visitors.\n\nConsumes 10 credits per successful request (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/tor-test-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/tor-test-api/",
     "description": "Tor Test API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "url": {
           "type": "string",
           "description": "URL submitted for the Tor accessibility test."
          },
          "accessible": {
           "type": "boolean",
           "description": "Returns true if the URL is accessible from the Tor network."
          },
          "status_code": {
           "type": "integer",
           "description": "HTTP status code returned by the server."
          },
          "debug_message": {
           "type": "string",
           "description": "Debug or error details about the request, if any. Empty string if none."
          },
          "response_headers": {
           "type": "object",
           "properties": {
            "content-length": {
             "type": "string"
            },
            "content-type": {
             "type": "string"
            },
            "date": {
             "type": "string"
            },
            "expires": {
             "type": "string"
            },
            "last-modified": {
             "type": "string"
            },
            "mime-version": {
             "type": "string"
            },
            "server": {
             "type": "string"
            },
            "set-cookie": {
             "type": "string"
            },
            "x-cache-status": {
             "type": "string"
            },
            "x-cdn": {
             "type": "string"
            },
            "x-cdn-version": {
             "type": "string"
            }
           },
           "description": "HTTP response headers returned by the server to the Tor exit node, keyed by lowercase header name."
          },
          "html_info": {
           "type": "object",
           "properties": {
            "title": {
             "type": "string",
             "description": "Title of the page returned to the Tor exit node."
            },
            "description": {
             "type": "string",
             "description": "Meta description of the page returned to the Tor exit node."
            }
           }
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "url": "https://www.nvidia.com/",
         "accessible": false,
         "status_code": 403,
         "debug_message": "",
         "response_headers": {
          "content-length": "366",
          "content-type": "text/html",
          "date": "Fri, 28 Mar 2025 15:20:54 GMT",
          "expires": "Fri, 28 Mar 2025 15:20:54 GMT",
          "last-modified": "Fri, 28 Mar 2025 15:20:54 GMT",
          "mime-version": "1.0",
          "server": "AkamaiGHost",
          "set-cookie": "c_code=DE; Path=/; Secure",
          "x-cache-status": "Error from child",
          "x-cdn": "akam",
          "x-cdn-version": "v373"
         },
         "html_info": {
          "title": "Access Denied",
          "description": ""
         },
         "elapsed_ms": 678
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 10,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "url": {
          "type": "string",
          "description": "URL to submit, e.g. https://www.nvidia.com/."
         }
        },
        "required": [
         "url"
        ]
       },
       "example": {
        "url": "https://www.nvidia.com/"
       }
      }
     }
    }
   }
  },
  "/url-reputation": {
   "post": {
    "operationId": "url_reputation",
    "tags": [
     "URL Reputation API"
    ],
    "summary": "URL Reputation API",
    "description": "Check the safety reputation and risk score of a URL using unique URL security checks, with detailed detection and website analysis data.\n\nConsumes 5 credits per successful request (non-200 responses never consume credits). Can take up to 60 seconds; set your client timeout accordingly. Full reference: https://docs.apivoid.com/url-reputation-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/url-reputation-api/",
     "description": "URL Reputation API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "url": {
           "type": "string",
           "description": "URL submitted for the reputation analysis."
          },
          "dns_records": {
           "type": "object",
           "properties": {
            "ns": {
             "type": "array",
             "items": {
              "type": "object",
              "properties": {
               "target": {
                "type": "string",
                "description": "Name server hostname."
               },
               "ip": {
                "type": "string",
                "description": "IPv4 address of the name server."
               },
               "country_code": {
                "type": "string",
                "description": "Country code (e.g. US) of the name server IP address."
               },
               "country_name": {
                "type": "string",
                "description": "Country name of the name server IP address."
               },
               "isp": {
                "type": "string",
                "description": "Internet Service Provider (ISP) of the name server IP address."
               }
              }
             },
             "description": "NS records of the domain; each item has target, ip, country_code, country_name and isp."
            },
            "mx": {
             "type": "array",
             "items": {
              "type": "object",
              "properties": {
               "target": {
                "type": "string",
                "description": "Mail server hostname."
               },
               "ip": {
                "type": "string",
                "description": "IPv4 address of the mail server."
               },
               "country_code": {
                "type": "string",
                "description": "Country code (e.g. US) of the mail server IP address."
               },
               "country_name": {
                "type": "string",
                "description": "Country name of the mail server IP address."
               },
               "isp": {
                "type": "string",
                "description": "Internet Service Provider (ISP) of the mail server IP address."
               }
              }
             },
             "description": "MX records of the domain; each item has target, ip, country_code, country_name and isp."
            },
            "cname": {
             "type": "string",
             "description": "CNAME target of the host. Empty string if none."
            }
           }
          },
          "domain_blacklist": {
           "type": "object",
           "properties": {
            "engines": {
             "type": "object",
             "additionalProperties": {
              "type": "object",
              "properties": {
               "name": {
                "type": "string",
                "description": "Name of the scanning engine."
               },
               "detected": {
                "type": "boolean",
                "description": "Returns true if this engine flagged the submitted domain."
               },
               "reference": {
                "type": "string",
                "description": "Link to the engine's website or listing details."
               },
               "confidence": {
                "type": "string",
                "description": "Confidence of this engine detection, e.g. high."
               },
               "elapsed_ms": {
                "type": "integer",
                "description": "Time taken by this engine to complete its check, in milliseconds."
               }
              }
             },
             "description": "List of scanning engines; each item has name, detected, reference, confidence and elapsed_ms."
            },
            "detections": {
             "type": "integer",
             "description": "Number of scanning engines that detected the domain."
            },
            "engines_count": {
             "type": "integer",
             "description": "Number of scanning engines used to scan the domain."
            },
            "detection_rate": {
             "type": "string",
             "description": "Percentage of engines that detected the domain, e.g. 5%."
            },
            "scan_time_ms": {
             "type": "integer",
             "description": "Time taken to scan the domain across all engines, in milliseconds."
            }
           }
          },
          "domain_parts": {
           "type": "object",
           "properties": {
            "root_domain": {
             "type": "string",
             "description": "Registered root domain (e.g. example.com), excluding subdomains."
            },
            "subdomain": {
             "type": "string",
             "description": "Subdomain portion of the host (e.g. www). Empty string if none."
            },
            "tld": {
             "type": "string",
             "description": "Top-level domain (e.g. com, org, co.uk)."
            }
           }
          },
          "file_type": {
           "type": "object",
           "properties": {
            "signature": {
             "type": "string",
             "description": "Returns file type by analyzing file content."
            },
            "extension": {
             "type": "string",
             "description": "Returns file type by analyzing file extension."
            },
            "headers": {
             "type": "string",
             "description": "Returns file type by analyzing HTTP response headers."
            }
           }
          },
          "geo_location": {
           "type": "object",
           "properties": {
            "countries": {
             "type": "array",
             "items": {
              "type": "string"
             },
             "description": "List of potential countries of origin."
            }
           }
          },
          "html_info": {
           "type": "object",
           "properties": {
            "title": {
             "type": "string",
             "description": "Title of the page."
            },
            "description": {
             "type": "string",
             "description": "Meta description of the page."
            },
            "keywords": {
             "type": "string",
             "description": "Contents of the meta keywords tag."
            },
            "robots": {
             "type": "string",
             "description": "Robots meta tag of the page."
            },
            "canonical": {
             "type": "string",
             "description": "Canonical URL of the page."
            },
            "og_image": {
             "type": "string",
             "description": "Open Graph image URL of the page."
            },
            "article_publisher": {
             "type": "string",
             "description": "Contents of the article:publisher Open Graph tag. Empty string if none."
            },
            "og_site_name": {
             "type": "string",
             "description": "Open Graph site name of the page."
            },
            "twitter_site": {
             "type": "string",
             "description": "Twitter site handle of the page."
            },
            "generator": {
             "type": "string",
             "description": "CMS or framework from meta generator tag (e.g. WordPress)."
            },
            "ld_organization": {
             "type": "string",
             "description": "Organization name found in JSON-LD structured data."
            },
            "lang": {
             "type": "string",
             "description": "Language declared by the page, e.g. en-US."
            }
           }
          },
          "redirection": {
           "type": "object",
           "properties": {
            "found": {
             "type": "boolean",
             "description": "Returns true if the URL redirects to another URL."
            },
            "external": {
             "type": "boolean",
             "description": "Returns true if the redirect points to an external host."
            },
            "url": {
             "type": "string",
             "description": "Destination URL of the redirect. Empty string if none."
            },
            "redirects": {
             "type": "array",
             "items": {},
             "description": "List of redirect URLs followed. Empty array if none."
            }
           }
          },
          "response_headers": {
           "type": "object",
           "properties": {
            "code": {
             "type": "integer"
            },
            "status": {
             "type": "string"
            },
            "content-type": {
             "type": "string"
            },
            "vary": {
             "type": "string"
            },
            "content-security-policy": {
             "type": "string"
            },
            "content-language": {
             "type": "string"
            },
            "access-control-allow-origin": {
             "type": "string"
            },
            "content-encoding": {
             "type": "string"
            },
            "x-cloud-trace-context": {
             "type": "string"
            },
            "date": {
             "type": "string"
            },
            "server": {
             "type": "string"
            },
            "content-length": {
             "type": "string"
            }
           },
           "description": "HTTP response headers returned by the server, keyed by lowercase header name."
          },
          "risk_score": {
           "type": "object",
           "properties": {
            "result": {
             "type": "integer",
             "description": "Returns risk score, a number between 0 (safe) and 100 (dangerous)."
            }
           }
          },
          "security_checks": {
           "type": "object",
           "properties": {
            "is_host_an_ipv4": {
             "type": "boolean",
             "description": "Returns true if the URL host is an IPv4 address instead of a domain."
            },
            "is_uncommon_host_length": {
             "type": "boolean",
             "description": "Returns true if the host length is uncommon (such as, a very long domain)."
            },
            "is_uncommon_dash_char_count": {
             "type": "boolean",
             "description": "Returns true if the host contains too many dash \"-\" characters."
            },
            "is_uncommon_dot_char_count": {
             "type": "boolean",
             "description": "Returns true if the host contains too many dot \".\" characters."
            },
            "is_suspicious_url_pattern": {
             "type": "boolean",
             "description": "Returns true if URL pattern is suspicious."
            },
            "is_suspicious_file_extension": {
             "type": "boolean",
             "description": "Returns true if URL file extension is suspicious."
            },
            "is_robots_noindex": {
             "type": "boolean",
             "description": "Returns true if URL \"doesn't want\" to be indexed on Google."
            },
            "is_suspended_page": {
             "type": "boolean",
             "description": "Returns true if the web page has been suspended by the hosting provider."
            },
            "is_most_abused_tld": {
             "type": "boolean",
             "description": "Returns true if the domain TLD is risky, e.g. .top or .tk."
            },
            "is_uncommon_clickable_url": {
             "type": "boolean",
             "description": "Returns true if the URL is not a commonly clickable URL."
            },
            "is_phishing_heuristic": {
             "type": "boolean",
             "description": "Returns true if URL content matches our phishing rules."
            },
            "is_possible_emotet": {
             "type": "boolean",
             "description": "Returns true if URL is potentially related to Emotet."
            },
            "is_redirect_to_search_engine": {
             "type": "boolean",
             "description": "Returns true if URL redirects to search engines, like google.com."
            },
            "is_redirect_to_wikipedia": {
             "type": "boolean",
             "description": "Returns true if the URL redirects to Wikipedia."
            },
            "http_status_code": {
             "type": "integer",
             "description": "HTTP status code returned by the website, e.g. 200."
            },
            "is_http_status_error": {
             "type": "boolean",
             "description": "Returns true if the HTTP status code is an error (4xx or 5xx)."
            },
            "is_http_server_error": {
             "type": "boolean",
             "description": "Returns true if the HTTP status code is a server error (5xx)."
            },
            "is_http_client_error": {
             "type": "boolean",
             "description": "Returns true if the HTTP status code is a client error (4xx)."
            },
            "is_suspicious_content": {
             "type": "boolean",
             "description": "Returns true if URL content matches our suspicious content rules."
            },
            "is_url_accessible": {
             "type": "boolean",
             "description": "Returns true if URL is accessible by our servers (status code is 2xx or 3xx)."
            },
            "is_empty_page_title": {
             "type": "boolean",
             "description": "Returns true if URL page title is empty."
            },
            "is_empty_page_content": {
             "type": "boolean",
             "description": "Returns true if URL page content is empty."
            },
            "is_domain_ipv4_assigned": {
             "type": "boolean",
             "description": "Returns true if the domain resolves to an assigned IPv4 address."
            },
            "is_domain_ipv4_private": {
             "type": "boolean",
             "description": "Returns true if the domain resolves to a private IPv4 address."
            },
            "is_domain_ipv4_loopback": {
             "type": "boolean",
             "description": "Returns true if the domain resolves to a loopback (e.g. 127.0.0.1) IPv4 address."
            },
            "is_domain_ipv4_reserved": {
             "type": "boolean",
             "description": "Returns true if the domain resolves to a reserved IPv4 address."
            },
            "is_domain_ipv4_valid": {
             "type": "boolean",
             "description": "Returns true if the domain resolves to a valid public IPv4 address."
            },
            "is_domain_blacklisted": {
             "type": "boolean",
             "description": "Returns true if domain is blacklisted by trusted sources."
            },
            "is_suspicious_domain": {
             "type": "boolean",
             "description": "Returns true if domain matches our suspicious domain rules."
            },
            "is_sinkholed_domain": {
             "type": "boolean",
             "description": "Returns true if domain is sinkholed (malicious)."
            },
            "is_defaced_heuristic": {
             "type": "boolean",
             "description": "Returns true if URL page has been defaced (we use our own rules)."
            },
            "is_masked_file": {
             "type": "boolean",
             "description": "Returns true if remote file content does not match its extension."
            },
            "is_risky_geo_location": {
             "type": "boolean",
             "description": "Returns true if website location is considered risky."
            },
            "is_china_country": {
             "type": "boolean",
             "description": "Returns true if website is potentially located in China."
            },
            "is_nigeria_country": {
             "type": "boolean",
             "description": "Returns true if website is potentially located in Nigeria."
            },
            "is_non_standard_port": {
             "type": "boolean",
             "description": "Returns true if remote port is a non-standard port."
            },
            "is_email_address_on_url_query": {
             "type": "boolean",
             "description": "Returns true if an email address is found in the URL query string."
            },
            "is_directory_listing": {
             "type": "boolean",
             "description": "Returns true if URL page is a directory listing."
            },
            "is_exe_on_directory_listing": {
             "type": "boolean",
             "description": "Returns true if an EXE file is found in the directory listing."
            },
            "is_zip_on_directory_listing": {
             "type": "boolean",
             "description": "Returns true if a .zip file is found on an open directory listing."
            },
            "is_php_on_directory_listing": {
             "type": "boolean",
             "description": "Returns true if a .php file is found on an open directory listing."
            },
            "is_doc_on_directory_listing": {
             "type": "boolean",
             "description": "Returns true if a .doc file is found on an open directory listing."
            },
            "is_pdf_on_directory_listing": {
             "type": "boolean",
             "description": "Returns true if a .pdf file is found on an open directory listing."
            },
            "is_apk_on_directory_listing": {
             "type": "boolean",
             "description": "Returns true if a .apk file is found on an open directory listing."
            },
            "is_linux_elf_file": {
             "type": "boolean",
             "description": "Returns true if remote file is an ELF (executable) linux file."
            },
            "is_linux_elf_file_on_free_dynamic_dns": {
             "type": "boolean",
             "description": "Returns true if the URL serves a Linux ELF file hosted on a free dynamic DNS domain."
            },
            "is_linux_elf_file_on_free_hosting": {
             "type": "boolean",
             "description": "Returns true if the URL serves a Linux ELF file hosted on a free hosting service."
            },
            "is_linux_elf_file_on_ipv4": {
             "type": "boolean",
             "description": "Returns true if remote URL is an ELF file on an IPv4 host."
            },
            "is_masked_linux_elf_file": {
             "type": "boolean",
             "description": "Returns true if the URL serves a Linux ELF file masked with a different file extension."
            },
            "is_masked_windows_exe_file": {
             "type": "boolean",
             "description": "Returns true if remote EXE file is masked with wrong file extension."
            },
            "is_ms_office_file": {
             "type": "boolean",
             "description": "Returns true if the URL serves a Microsoft Office file."
            },
            "is_windows_exe_file_on_free_dynamic_dns": {
             "type": "boolean",
             "description": "Returns true if the URL serves a Windows executable hosted on a free dynamic DNS domain."
            },
            "is_windows_exe_file_on_free_hosting": {
             "type": "boolean",
             "description": "Returns true if the URL serves a Windows executable hosted on a free hosting service."
            },
            "is_windows_exe_file_on_ipv4": {
             "type": "boolean",
             "description": "Returns true if the URL serves a Windows executable hosted on a bare IPv4 address."
            },
            "is_windows_exe_file": {
             "type": "boolean",
             "description": "Returns true if remote file is an EXE (executable) Windows file."
            },
            "is_android_apk_file_on_free_dynamic_dns": {
             "type": "boolean",
             "description": "Returns true if the URL serves an Android APK file hosted on a free dynamic DNS domain."
            },
            "is_android_apk_file_on_free_hosting": {
             "type": "boolean",
             "description": "Returns true if the URL serves an Android APK file hosted on a free hosting service."
            },
            "is_android_apk_file_on_ipv4": {
             "type": "boolean",
             "description": "Returns true if the URL serves an Android APK file hosted on a bare IPv4 address."
            },
            "is_android_apk_file": {
             "type": "boolean",
             "description": "Returns true if the URL serves an Android APK file."
            },
            "is_external_redirect": {
             "type": "boolean",
             "description": "Returns true if the URL redirects to an external website."
            },
            "is_risky_category": {
             "type": "boolean",
             "description": "Returns true if domain is a free DNS provider, free hosting provider or URL shortener."
            },
            "is_domain_recent": {
             "type": "string",
             "description": "Returns \"yes\" if domain was created less than 6 months ago, can be yes/no/unknown."
            },
            "is_domain_very_recent": {
             "type": "string",
             "description": "Returns \"yes\" if domain was created less than 30 days ago, can be yes/no/unknown."
            },
            "domain_creation_date": {
             "type": "string",
             "description": "Domain registration date, format is Y-m-d (empty if unknown)."
            },
            "domain_age_in_days": {
             "type": "integer",
             "description": "Age of the domain in days (0 if unknown)."
            },
            "domain_age_in_months": {
             "type": "integer",
             "description": "Age of the domain in months (0 if unknown)."
            },
            "domain_age_in_years": {
             "type": "integer",
             "description": "Age of the domain in years (0 if unknown)."
            },
            "is_credit_card_field": {
             "type": "boolean",
             "description": "Returns true if the web page contains credit card input fields."
            },
            "is_email_field": {
             "type": "boolean",
             "description": "Returns true if the web page contains an email input field."
            },
            "is_password_field": {
             "type": "boolean",
             "description": "Returns true if the web page contains password input fields."
            },
            "is_valid_https": {
             "type": "boolean",
             "description": "Returns true if the URL HTTPS (SSL) is valid."
            },
            "is_ssl_blacklisted": {
             "type": "boolean",
             "description": "Returns true if the SSL certificate is blacklisted by trusted sources."
            }
           }
          },
          "server_details": {
           "type": "object",
           "properties": {
            "ip": {
             "type": "string",
             "description": "IP address of the submitted host."
            },
            "hostname": {
             "type": "string",
             "description": "Reverse DNS hostname (PTR record) of the host's IP address. Empty string if none."
            },
            "continent_code": {
             "type": "string",
             "description": "Continent code (e.g. NA) of where the host's IP address is located."
            },
            "continent_name": {
             "type": "string",
             "description": "Continent name (e.g. North America) of where the host's IP address is located."
            },
            "country_code": {
             "type": "string",
             "description": "Country code (e.g. CN) of where the host's IP address is located."
            },
            "country_name": {
             "type": "string",
             "description": "Country name of where the host's IP address is located."
            },
            "region_name": {
             "type": "string",
             "description": "Region or state name of where the host's IP address is located."
            },
            "city_name": {
             "type": "string",
             "description": "City name of where the host's IP address is located."
            },
            "latitude": {
             "type": "number",
             "description": "Approximate latitude of the host's IP address."
            },
            "longitude": {
             "type": "number",
             "description": "Approximate longitude of the host's IP address."
            },
            "isp": {
             "type": "string",
             "description": "Internet Service Provider (ISP) of host's IP address."
            },
            "asn": {
             "type": "string",
             "description": "IP Autonomous System Number (ASN), such as AS16509."
            }
           }
          },
          "site_category": {
           "type": "object",
           "properties": {
            "is_free_hosting": {
             "type": "boolean",
             "description": "Returns true if the site is a known free hosting service."
            },
            "is_anonymizer": {
             "type": "boolean",
             "description": "Returns true if the site is a known anonymizer service."
            },
            "is_url_shortener": {
             "type": "boolean",
             "description": "Returns true if the site is a known URL shortener."
            },
            "is_free_dynamic_dns": {
             "type": "boolean",
             "description": "Returns true if the site is a known free dynamic DNS service."
            },
            "is_code_sandbox": {
             "type": "boolean",
             "description": "Returns true if the site is a known code sandbox service."
            },
            "is_form_builder": {
             "type": "boolean",
             "description": "Returns true if the site is a known online form builder."
            },
            "is_free_file_sharing": {
             "type": "boolean",
             "description": "Returns true if the site is a known free file sharing service."
            },
            "is_pastebin": {
             "type": "boolean",
             "description": "Returns true if the site is a known pastebin service."
            }
           }
          },
          "url_parts": {
           "type": "object",
           "properties": {
            "scheme": {
             "type": "string",
             "description": "URL scheme: http or https."
            },
            "host": {
             "type": "string",
             "description": "Full hostname including subdomain (e.g. www.example.com)."
            },
            "host_nowww": {
             "type": "string",
             "description": "Hostname with the www. prefix stripped."
            },
            "port": {
             "type": "integer",
             "description": "Port number. Typically 80 for HTTP, 443 for HTTPS, or 0 if unspecified."
            },
            "path": {
             "type": "string",
             "description": "URL path component (e.g. /contact-us/)."
            },
            "query": {
             "type": "string",
             "description": "URL query string. Empty string if none."
            }
           }
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "url": "https://blog.google/products/android/",
         "dns_records": {
          "ns": [
           {
            "target": "ns2.zdns.google",
            "ip": "216.239.34.114",
            "country_code": "US",
            "country_name": "United States of America",
            "isp": "Google LLC"
           },
           {
            "target": "ns1.zdns.google",
            "ip": "216.239.32.114",
            "country_code": "US",
            "country_name": "United States of America",
            "isp": "Google LLC"
           },
           {
            "target": "ns4.zdns.google",
            "ip": "216.239.38.114",
            "country_code": "US",
            "country_name": "United States of America",
            "isp": "Google LLC"
           },
           {
            "target": "ns3.zdns.google",
            "ip": "216.239.36.114",
            "country_code": "US",
            "country_name": "United States of America",
            "isp": "Google LLC"
           }
          ],
          "mx": [
           {
            "target": "smtp.google.com",
            "ip": "142.251.107.26",
            "country_code": "US",
            "country_name": "United States of America",
            "isp": "Google LLC"
           }
          ],
          "cname": ""
         },
         "domain_blacklist": {
          "engines": {
           "0": {
            "name": "ANJ Blocked Sites",
            "detected": false,
            "reference": "https://anj.fr/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "1": {
            "name": "AntiSocial Blacklist",
            "detected": false,
            "reference": "https://theantisocialengineer.com/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "2": {
            "name": "APVA",
            "detected": false,
            "reference": "https://www.antiphish.org/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "3": {
            "name": "Artists Against 419",
            "detected": false,
            "reference": "https://wiki.aa419.org/index.php/Main_Page",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "4": {
            "name": "AZORult Tracker",
            "detected": false,
            "reference": "https://azorult-tracker.net/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "5": {
            "name": "Badbitcoin",
            "detected": false,
            "reference": "https://badbitcoin.org/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "6": {
            "name": "Bambenek Consulting",
            "detected": false,
            "reference": "https://www.bambenekconsulting.com/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "7": {
            "name": "CERT Polska",
            "detected": false,
            "reference": "https://www.cert.pl/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "8": {
            "name": "COI CZ",
            "detected": false,
            "reference": "https://coi.gov.cz/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "9": {
            "name": "CryptoScamDB",
            "detected": false,
            "reference": "https://cryptoscamdb.org/",
            "confidence": "high",
            "elapsed_ms": 0
           },
           "10": {
            "name": "EtherAddressLookup",
            "detected": false,
            "reference": "https://github.com/409H/EtherAddressLookup/",
            "confidence": "high",
            "elapsed_ms": 0
           }
          },
          "detections": 0,
          "engines_count": 42,
          "detection_rate": "0%",
          "scan_time_ms": 119
         },
         "domain_parts": {
          "root_domain": "blog.google",
          "subdomain": "",
          "tld": "google"
         },
         "file_type": {
          "signature": "HTML",
          "extension": "",
          "headers": "HTML"
         },
         "geo_location": {
          "countries": [
           "US"
          ]
         },
         "html_info": {
          "title": "Official Android news and updates | Google Blog",
          "description": "Read the latest news and updates about Android, the world's most popular mobile platform.",
          "keywords": "",
          "robots": "",
          "canonical": "https://blog.google/products/android/",
          "og_image": "https://storage.googleapis.com/gweb-uniblog-publish-prod/images/3D_DROID_HEAD_200x200.max-1440x810.jpg",
          "article_publisher": "",
          "og_site_name": "blog.google",
          "twitter_site": "@google",
          "generator": "",
          "ld_organization": "",
          "lang": "en-us"
         },
         "redirection": {
          "found": false,
          "external": false,
          "url": "",
          "redirects": []
         },
         "response_headers": {
          "code": 200,
          "status": "HTTP/2 200",
          "content-type": "text/html; charset=utf-8",
          "vary": "Accept-Encoding",
          "content-security-policy": "require-trusted-types-for 'script'; connect-src 'self' cdn.ampproject.org *.google.com storage.googleapis.com https://services.google.com/fb/submissions/thekeywordtest/ https://services.google.com/fb/submissions/0a65d7733e1f11ea9701614fc033d30c/ *.gstatic.com gstatic.com *.cdn.ampproject.org *.doubleclick.net https://readaloud.googleapis.com/ *.google-analytics.com https://www.youtube.com/; img-src * data: blob:; font-src 'self' themes.googleusercontent.com *.gstatic.com https://fonts.gstatic.com storage.googleapis.com fonts.googleapis.com *.cdn.ampproject.org; style-src 'self' 'unsafe-inline' fonts.googleapis.com *.gstatic.com storage.googleapis.com *.google.com cdn.ampproject.org; object-src 'none'; media-src 'self' data: *.gstatic.com storage.googleapis.com *.googlevideo.com; base-uri 'none'; script-src 'self' 'strict-dynamic' 'unsafe-inline' *.googleanalytics.com *.google-analytics.com *.youtube.com youtube.com optimize.google.com https://s.ytimg.com *.googletagmanager.com storage.googleapis.com *.googleapis.com *.google.com cdn.ampproject.org *.gstatic.com gstatic.com googleadservices.com *.googleadservices.com 'sha256-hdPneczWRi+c9LQVo+PzNzlNr9TacChC0CW0fiDBHkI=' 'sha256-DE/j4w1a1HDIXysWgFTrJCJK6JWEcHqScfyMr9zq9R4=' 'sha256-Ehy9lGqrTi8OqqWxX1HN6hKJT7iwwYMFJ+HLjpEobO0=' 'sha256-s/yvuH0ZHyO+7N8dM5CshPem4K1PknDExYN18xHq0LI=' 'sha256-MWQdkIAX5J//suH1t5P3PFFwFUiphY0PxD6VVzbBehQ=' 'sha256-587vJAV9t9k86IMQixmyKa7lbPaDhkGzrJsdngtoiAA=' 'sha256-nlbIOie3vmdUUZjQFDMa7iipxS6Qst8pPhTLjibMsRk=' 'sha256-+LJ+tgqOXIri3+D/uJC785tov3eXewv8x+Pkenx+3Z8=' 'sha256-PnD9J8UK8zpwVizQXkEtbZOvTiv9C/05Nn81NEwPBoQ=' 'sha256-LH1mE8uiAlSGs6/ejmL47sTk8G+/Hh6T1ydVxa0idaM=' 'sha256-GuPeLJgWIkkS7hCKcSc+mQs6jTN0D8QzfW624B4OMME=' 'sha256-CDqe41szG4ZmAxS54wSNKisRTrwu1wxcuRQv09PB3Nk=' 'sha256-Xyk5Ei/Yh7DuZgaxNfbPswkpmMKHk5Jy18vkxjfPMj0=' 'sha256-Q+8W9SyZ6wnayM05rLv0YuHooUH/nnzpE2XQZJ/ekjY=' 'sha256-1lOrojGb+aoV56bZpsODLpb+j+HHbONNEpX/YqVtiUU=' 'sha256-sAsQphoZozaLVFpcda3bvT5euqcGL4MqVnizAR+Xla4=' 'sha256-ZlqdbaXB1F4Evuv/nmY3QGBLFBbrfiNndyYxbgdQn7g=' 'sha256-OEwIbDcQTxJYhU2ONmKA0LutIDdkmge2c+9IPFv5vFE=' 'sha256-Iz9ZZz/rHQFiJs2bKOHSC82gR0WdD/37qrPCB65PCFg='; frame-src 'self' www.google.com *.youtube.com youtube.com accounts.google.com *.doubleclick.net apis.google.com optimize.google.com *.google.com *.cdn.ampproject.org https://www.gstatic.com/ https://www.youtube-nocookie.com/; default-src 'self' *.gstatic.com storage.googleapis.com",
          "content-language": "en-us",
          "access-control-allow-origin": "*",
          "content-encoding": "gzip",
          "x-cloud-trace-context": "3578b5662a689995c0760c7d9e7f155c",
          "date": "Fri, 19 Dec 2025 22:37:38 GMT",
          "server": "Google Frontend",
          "content-length": "63300"
         },
         "risk_score": {
          "result": 0
         },
         "security_checks": {
          "is_host_an_ipv4": false,
          "is_uncommon_host_length": false,
          "is_uncommon_dash_char_count": false,
          "is_uncommon_dot_char_count": false,
          "is_suspicious_url_pattern": false,
          "is_suspicious_file_extension": false,
          "is_robots_noindex": false,
          "is_suspended_page": false,
          "is_most_abused_tld": false,
          "is_uncommon_clickable_url": false,
          "is_phishing_heuristic": false,
          "is_possible_emotet": false,
          "is_redirect_to_search_engine": false,
          "is_redirect_to_wikipedia": false,
          "http_status_code": 200,
          "is_http_status_error": false,
          "is_http_server_error": false,
          "is_http_client_error": false,
          "is_suspicious_content": false,
          "is_url_accessible": true,
          "is_empty_page_title": false,
          "is_empty_page_content": false,
          "is_domain_ipv4_assigned": true,
          "is_domain_ipv4_private": false,
          "is_domain_ipv4_loopback": false,
          "is_domain_ipv4_reserved": false,
          "is_domain_ipv4_valid": true,
          "is_domain_blacklisted": false,
          "is_suspicious_domain": false,
          "is_sinkholed_domain": false,
          "is_defaced_heuristic": false,
          "is_masked_file": false,
          "is_risky_geo_location": false,
          "is_china_country": false,
          "is_nigeria_country": false,
          "is_non_standard_port": false,
          "is_email_address_on_url_query": false,
          "is_directory_listing": false,
          "is_exe_on_directory_listing": false,
          "is_zip_on_directory_listing": false,
          "is_php_on_directory_listing": false,
          "is_doc_on_directory_listing": false,
          "is_pdf_on_directory_listing": false,
          "is_apk_on_directory_listing": false,
          "is_linux_elf_file": false,
          "is_linux_elf_file_on_free_dynamic_dns": false,
          "is_linux_elf_file_on_free_hosting": false,
          "is_linux_elf_file_on_ipv4": false,
          "is_masked_linux_elf_file": false,
          "is_masked_windows_exe_file": false,
          "is_ms_office_file": false,
          "is_windows_exe_file_on_free_dynamic_dns": false,
          "is_windows_exe_file_on_free_hosting": false,
          "is_windows_exe_file_on_ipv4": false,
          "is_windows_exe_file": false,
          "is_android_apk_file_on_free_dynamic_dns": false,
          "is_android_apk_file_on_free_hosting": false,
          "is_android_apk_file_on_ipv4": false,
          "is_android_apk_file": false,
          "is_external_redirect": false,
          "is_risky_category": false,
          "is_domain_recent": "no",
          "is_domain_very_recent": "no",
          "domain_creation_date": "2016-08-12",
          "domain_age_in_days": 3416,
          "domain_age_in_months": 110,
          "domain_age_in_years": 9,
          "is_credit_card_field": false,
          "is_email_field": false,
          "is_password_field": false,
          "is_valid_https": true,
          "is_ssl_blacklisted": false
         },
         "server_details": {
          "ip": "216.239.34.21",
          "hostname": "any-in-2215.1e100.net",
          "continent_code": "NA",
          "continent_name": "North America",
          "country_code": "US",
          "country_name": "United States of America",
          "region_name": "California",
          "city_name": "Mountain View",
          "latitude": 37.38605,
          "longitude": -122.08385,
          "isp": "Google LLC",
          "asn": "AS15169"
         },
         "site_category": {
          "is_free_hosting": false,
          "is_anonymizer": false,
          "is_url_shortener": false,
          "is_free_dynamic_dns": false,
          "is_code_sandbox": false,
          "is_form_builder": false,
          "is_free_file_sharing": false,
          "is_pastebin": false
         },
         "url_parts": {
          "scheme": "https",
          "host": "blog.google",
          "host_nowww": "blog.google",
          "port": 443,
          "path": "/products/android/",
          "query": ""
         },
         "elapsed_ms": 1385
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 5,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "url": {
          "type": "string",
          "description": "URL to submit, e.g. https://www.example.com/index.html."
         }
        },
        "required": [
         "url"
        ]
       },
       "example": {
        "url": "https://blog.google/products/android/"
       }
      }
     }
    }
   }
  },
  "/url-status": {
   "post": {
    "operationId": "url_status",
    "tags": [
     "URL Status API"
    ],
    "summary": "URL Status API",
    "description": "Check the status of a URL: HTTP response code, redirects chain, final URL and page details, with many options to control how the URL is fetched.\n\nConsumes 1 credit per successful request (non-200 responses never consume credits). Can take up to 60 seconds; set your client timeout accordingly. Full reference: https://docs.apivoid.com/url-status-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/url-status-api/",
     "description": "URL Status API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "url": {
           "type": "string",
           "description": "The original URL submitted for checking."
          },
          "unwrapped_url": {
           "type": "string",
           "description": "If the input is an email gateway protected link (Mimecast, Proofpoint, Barracuda, etc.), contains the extracted real destination URL that was scanned. Empty string if not applicable."
          },
          "debug_message": {
           "type": "string",
           "description": "Populated when the chain stopped early (e.g. max redirects reached, meta refresh disabled). Empty string on a clean complete chain."
          },
          "chain_status": {
           "type": "string",
           "description": "complete if the chain reached a final URL. partial if stopped early."
          },
          "redirect_stats": {
           "type": "object",
           "properties": {
            "redirects_found": {
             "type": "integer",
             "description": "Total redirects detected in the chain, including 3xx and other redirects."
            },
            "followed_redirects": {
             "type": "integer",
             "description": "Number of redirects actually followed. May be lower than redirects_found if a redirect was not followed."
            },
            "duplicate_redirects": {
             "type": "integer",
             "description": "Hops where the URL was already visited earlier in the chain. A non-zero value indicates a potential redirect loop."
            },
            "http_to_https_redirects": {
             "type": "integer",
             "description": "Redirects that upgraded the scheme from http:// to https://."
            },
            "https_to_http_redirects": {
             "type": "integer",
             "description": "Redirects that downgraded the scheme from https:// to http://. A non-zero value is a security concern."
            },
            "external_redirects": {
             "type": "integer",
             "description": "Redirects that crossed to a different root domain."
            },
            "same_origin_redirects": {
             "type": "integer",
             "description": "Redirects where scheme, host, and port all remained identical (browser origin definition)."
            },
            "cross_origin_redirects": {
             "type": "integer",
             "description": "Redirects where scheme, host, or port changed. Includes subdomain changes such as non-www to www."
            }
           }
          },
          "request_stats": {
           "type": "object",
           "properties": {
            "total_requests": {
             "type": "integer",
             "description": "Total HTTP requests made across the entire chain, including the final destination hop."
            },
            "failed_requests": {
             "type": "integer",
             "description": "Hops that returned no HTTP response (status_code: 0). Covers DNS failures, private IP blocks, and connection errors."
            },
            "slow_requests": {
             "type": "integer",
             "description": "Hops that exceeded the slow request threshold (6000ms)."
            },
            "ssl_errors": {
             "type": "integer",
             "description": "Hops with an invalid SSL certificate. Includes self-signed, expired, or name mismatch certificates."
            },
            "avg_elapsed_ms": {
             "type": "integer",
             "description": "Average response time in milliseconds across all hops in the chain."
            },
            "max_elapsed_ms": {
             "type": "integer",
             "description": "Slowest single hop response time in milliseconds across the chain."
            }
           }
          },
          "chain": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "url": {
              "type": "string",
              "description": "The URL requested at this hop."
             },
             "hop": {
              "type": "integer",
              "description": "Zero-based index of this hop in the redirect chain."
             },
             "protocol": {
              "type": "string",
              "description": "HTTP protocol version used (e.g. HTTP/1.1, HTTP/2). Empty string if the request failed."
             },
             "status_code": {
              "type": "integer",
              "description": "HTTP response status code. 0 indicates no response was received (connection failure)."
             },
             "status_message": {
              "type": "string",
              "description": "HTTP status message or a descriptive error if the request failed (e.g. Domain resolves to a non-public IP)."
             },
             "content_type": {
              "type": "string",
              "description": "Content-Type of the response at this hop, e.g. text/html."
             },
             "can_resolve": {
              "type": "boolean",
              "description": "Returns true if the domain resolved to a valid public IP address via DNS."
             },
             "connection_error": {
              "type": "boolean",
              "description": "Returns true if a connection error occurred at this hop. True for DNS failures and non-public IP blocks."
             },
             "redirect_to": {
              "type": "string",
              "description": "The URL this hop redirects to. Only present on redirect hops."
             },
             "redirect_type": {
              "type": "string",
              "description": "3xx_redirect for HTTP redirects. meta_redirect for HTML meta refresh redirects."
             },
             "redirect_info": {
              "type": "object",
              "properties": {
               "http_to_https": {
                "type": "boolean",
                "description": "Returns true if this redirect upgraded from http:// to https://."
               },
               "https_to_http": {
                "type": "boolean",
                "description": "Returns true if this redirect downgraded from https:// to http://."
               },
               "non_www_to_www": {
                "type": "boolean",
                "description": "Returns true if this redirect added the www. subdomain."
               },
               "www_to_non_www": {
                "type": "boolean",
                "description": "Returns true if this redirect removed the www. subdomain."
               },
               "external_redirect": {
                "type": "boolean",
                "description": "Returns true if this redirect crossed to a different root domain."
               },
               "same_origin": {
                "type": "boolean",
                "description": "Returns true if scheme, host, and port are all identical between source and destination (browser origin model)."
               },
               "cross_origin": {
                "type": "boolean",
                "description": "Returns true if scheme, host, or port differs between source and destination."
               },
               "same_scheme": {
                "type": "boolean",
                "description": "Returns true if the redirect keeps the same URL scheme (http/https)."
               },
               "same_domain": {
                "type": "boolean",
                "description": "Returns true if the root domain is the same, regardless of subdomain or scheme changes."
               },
               "same_host": {
                "type": "boolean",
                "description": "Returns true if the full host including subdomain is identical."
               },
               "same_port": {
                "type": "boolean",
                "description": "Returns true if the port is identical between source and destination."
               }
              }
             },
             "redirect_followed": {
              "type": "boolean",
              "description": "Returns true if the redirect at this hop was followed. False if max redirects reached or meta refresh is disabled."
             },
             "ip": {
              "type": "string",
              "description": "Resolved IP address of the host at this hop."
             },
             "url_parts": {
              "type": "object",
              "properties": {
               "scheme": {
                "type": "string",
                "description": "URL scheme at this hop: http or https."
               },
               "host": {
                "type": "string",
                "description": "Full hostname including subdomain (e.g. www.example.com)."
               },
               "host_nowww": {
                "type": "string",
                "description": "Hostname with the www. prefix stripped."
               },
               "port": {
                "type": "integer",
                "description": "Port number. Typically 80 for HTTP, 443 for HTTPS, or 0 if unspecified."
               },
               "path": {
                "type": "string",
                "description": "URL path component (e.g. /contact-us/)."
               },
               "query": {
                "type": "string",
                "description": "URL query string. Empty string if none."
               }
              }
             },
             "domain_parts": {
              "type": "object",
              "properties": {
               "root_domain": {
                "type": "string",
                "description": "Registered root domain (e.g. example.com), excluding subdomains."
               },
               "subdomain": {
                "type": "string",
                "description": "Subdomain portion of the host (e.g. www). Empty string if none."
               },
               "tld": {
                "type": "string",
                "description": "Top-level domain (e.g. com, org, co.uk)."
               }
              }
             },
             "valid_ssl": {
              "type": "boolean",
              "description": "Returns true if the SSL certificate passed all validation checks. Always false for plain HTTP hops."
             },
             "elapsed_ms": {
              "type": "integer",
              "description": "Response time in milliseconds for this individual hop."
             },
             "redirected_from": {
              "type": "string",
              "description": "URL of the previous hop that redirected here. Only present from hop 1 onwards."
             },
             "ssl_details": {
              "type": "object",
              "properties": {
               "certificate_found": {
                "type": "boolean",
                "description": "Returns true if an SSL certificate was found for this hop."
               },
               "ssl_errors": {
                "type": "boolean",
                "description": "Returns true if any SSL validation errors were detected."
               },
               "name_match": {
                "type": "boolean",
                "description": "Returns true if the certificate common name or SAN matches the requested hostname."
               },
               "expired": {
                "type": "boolean",
                "description": "Returns true if the certificate is past its expiry date."
               },
               "valid": {
                "type": "boolean",
                "description": "Returns true if the certificate passed all validation checks."
               },
               "self_signed": {
                "type": "boolean",
                "description": "Returns true if the certificate is self-signed (issuer equals subject)."
               },
               "issuer": {
                "type": "object",
                "properties": {
                 "common_name": {
                  "type": "string",
                  "description": "Common name of the Certificate Authority that issued this certificate."
                 },
                 "organization": {
                  "type": "array",
                  "items": {
                   "type": "string"
                  },
                  "description": "Organization name of the Certificate Authority (e.g. Let's Encrypt)."
                 },
                 "organizational_unit": {
                  "type": "array",
                  "items": {},
                  "description": "Organizational Unit (OU) entries of the certificate issuer. Empty array if none."
                 },
                 "location": {
                  "type": "array",
                  "items": {},
                  "description": "Locality (L) entries of the certificate issuer. Empty array if none."
                 },
                 "state": {
                  "type": "array",
                  "items": {},
                  "description": "State or province (ST) entries of the certificate issuer. Empty array if none."
                 },
                 "country": {
                  "type": "array",
                  "items": {
                   "type": "string"
                  },
                  "description": "Country (C) entries of the certificate issuer. Empty array if none."
                 }
                }
               },
               "subject": {
                "type": "object",
                "properties": {
                 "common_name": {
                  "type": "string",
                  "description": "Common name the certificate was issued for (e.g. *.example.com)."
                 },
                 "organization": {
                  "type": "array",
                  "items": {},
                  "description": "Organization (O) entries of the certificate subject. Empty array if none."
                 },
                 "organizational_unit": {
                  "type": "array",
                  "items": {},
                  "description": "Organizational Unit (OU) entries of the certificate subject. Empty array if none."
                 },
                 "location": {
                  "type": "array",
                  "items": {},
                  "description": "Locality (L) entries of the certificate subject. Empty array if none."
                 },
                 "state": {
                  "type": "array",
                  "items": {},
                  "description": "State or province (ST) entries of the certificate subject. Empty array if none."
                 },
                 "country": {
                  "type": "array",
                  "items": {},
                  "description": "Country (C) entries of the certificate subject. Empty array if none."
                 }
                }
               },
               "valid_from": {
                "type": "string",
                "description": "Certificate validity start date in UTC."
               },
               "valid_to": {
                "type": "string",
                "description": "Certificate expiry date in UTC."
               },
               "valid_days_left": {
                "type": "integer",
                "description": "Number of days until the certificate expires."
               },
               "expired_from_days": {
                "type": "integer",
                "description": "Number of days since the certificate expired. 0 on valid certificates."
               },
               "serial_number": {
                "type": "string",
                "description": "Unique serial number assigned by the Certificate Authority."
               },
               "fingerprint_sha1": {
                "type": "string",
                "description": "SHA-1 fingerprint of the certificate."
               },
               "fingerprint_sha256": {
                "type": "string",
                "description": "SHA-256 fingerprint of the certificate."
               },
               "algorithm": {
                "type": "string",
                "description": "Signature algorithm used (e.g. ECDSA-SHA256, SHA256-RSA)."
               },
               "key_algorithm": {
                "type": "string",
                "description": "Public key algorithm (e.g. RSA, ECDSA)."
               },
               "key_size": {
                "type": "integer",
                "description": "Key size in bits (e.g. 2048 for RSA, 256 for ECDSA)."
               },
               "type": {
                "type": "string",
                "description": "Certificate validation type: Domain Validation, Organization Validation, or Extended Validation."
               },
               "revoked": {
                "type": "boolean",
                "description": "Returns true if the SSL certificate is revoked."
               }
              }
             },
             "html_info": {
              "type": "object",
              "properties": {
               "title": {
                "type": "string",
                "description": "Contents of the HTML <title> tag."
               },
               "description": {
                "type": "string",
                "description": "Contents of the meta description tag."
               },
               "keywords": {
                "type": "string",
                "description": "Contents of the meta keywords tag."
               },
               "author": {
                "type": "string",
                "description": "Contents of the meta author tag. Empty string if none."
               },
               "robots": {
                "type": "string",
                "description": "Contents of the meta robots tag."
               },
               "googlebot": {
                "type": "string",
                "description": "Contents of the meta googlebot tag. Empty string if none."
               },
               "canonical": {
                "type": "string",
                "description": "Canonical URL declared via <link rel=\"canonical\">."
               },
               "og_image": {
                "type": "string",
                "description": "Open Graph image URL (og:image)."
               },
               "og_type": {
                "type": "string",
                "description": "Open Graph content type (og:type)."
               },
               "og_site_name": {
                "type": "string",
                "description": "Open Graph site name (og:site_name)."
               },
               "og_url": {
                "type": "string",
                "description": "Open Graph URL of the page. Empty string if none."
               },
               "article_publisher": {
                "type": "string",
                "description": "Contents of the article:publisher Open Graph tag. Empty string if none."
               },
               "twitter_site": {
                "type": "string",
                "description": "Twitter/X site handle from twitter:site meta tag."
               },
               "fb_app_id": {
                "type": "string",
                "description": "Facebook App ID from fb:app_id meta tag."
               },
               "ld_organization": {
                "type": "string",
                "description": "Organization name from JSON-LD structured data."
               },
               "ld_url": {
                "type": "string",
                "description": "URL from JSON-LD structured data."
               },
               "ld_logo": {
                "type": "string",
                "description": "Logo URL from JSON-LD structured data."
               },
               "ld_same_as": {
                "type": "array",
                "items": {},
                "description": "sameAs URLs found in JSON-LD structured data (e.g. social profiles)."
               },
               "generator": {
                "type": "array",
                "items": {},
                "description": "CMS or framework from meta generator tag (e.g. WordPress)."
               },
               "refresh_url": {
                "type": "string",
                "description": "Target URL from a meta refresh tag. Used to detect meta redirects."
               },
               "apple_itunes_app_id": {
                "type": "string",
                "description": "App ID from the apple-itunes-app meta tag. Empty string if none."
               },
               "apple_itunes_app_name": {
                "type": "string",
                "description": "App name from the apple-itunes-app meta tag. Empty string if none."
               },
               "icon": {
                "type": "string",
                "description": "URL of the site favicon."
               },
               "apple_touch_icon": {
                "type": "array",
                "items": {
                 "type": "object",
                 "properties": {
                  "size": {
                   "type": "string",
                   "description": "Value of the sizes attribute, e.g. 180x180. Empty string if not specified."
                  },
                  "href": {
                   "type": "string",
                   "description": "URL of the Apple touch icon."
                  }
                 }
                },
                "description": "Apple touch icon URLs and sizes declared on the page."
               },
               "lang": {
                "type": "string",
                "description": "Language code from the HTML lang attribute."
               },
               "hreflang": {
                "type": "array",
                "items": {},
                "description": "Hreflang alternate language/region URLs declared on the page."
               },
               "h1": {
                "type": "array",
                "items": {
                 "type": "string"
                },
                "description": "All <h1> tag contents found on the page."
               },
               "h2": {
                "type": "array",
                "items": {
                 "type": "string"
                },
                "description": "All <h2> tag contents found on the page."
               },
               "h3": {
                "type": "array",
                "items": {},
                "description": "Text of the H3 headings found on the page."
               }
              }
             },
             "response_headers": {
              "type": "object",
              "description": "HTTP response headers of the hop, keyed by lowercase header name."
             },
             "body_base64": {
              "type": "string",
              "description": "Response body of the hop encoded in base64."
             },
             "body_md5_hash_original": {
              "type": "string",
              "description": "MD5 hash of the original (untruncated) response body."
             },
             "body_size_bytes": {
              "type": "integer",
              "description": "Size of the response body in bytes."
             },
             "body_truncated": {
              "type": "boolean",
              "description": "Returns true if the response body was truncated."
             },
             "body_text": {
              "type": "string",
              "description": "Visible text extracted from the response body."
             },
             "favicon_details": {
              "type": "object",
              "properties": {
               "base64_file": {
                "type": "string",
                "description": "The favicon image encoded in base64."
               },
               "md5_hash": {
                "type": "string",
                "description": "MD5 hash of the favicon image file."
               },
               "image_width": {
                "type": "integer",
                "description": "Width of the favicon image in pixels."
               },
               "image_height": {
                "type": "integer",
                "description": "Height of the favicon image in pixels."
               },
               "file_size_bytes": {
                "type": "integer",
                "description": "File size of the favicon image in bytes."
               },
               "file_size_readable": {
                "type": "string",
                "description": "File size in human-readable format, e.g. 2.7 KB."
               }
              }
             },
             "og_image_details": {
              "type": "object",
              "properties": {
               "base64_file": {
                "type": "string",
                "description": "The Open Graph image encoded in base64."
               },
               "md5_hash": {
                "type": "string",
                "description": "MD5 hash of the Open Graph image file."
               },
               "image_width": {
                "type": "integer",
                "description": "Width of the Open Graph image in pixels."
               },
               "image_height": {
                "type": "integer",
                "description": "Height of the Open Graph image in pixels."
               },
               "file_size_bytes": {
                "type": "integer",
                "description": "File size of the Open Graph image in bytes."
               },
               "file_size_readable": {
                "type": "string",
                "description": "File size in human-readable format, e.g. 2.7 KB."
               }
              }
             },
             "links": {
              "type": "object",
              "description": "Links found on the page, grouped by source tag: a, script, inline, img, link, form, iframe, embed, object.",
              "additionalProperties": {
               "type": "object",
               "properties": {
                "internal": {
                 "type": "array",
                 "items": {},
                 "description": "URLs of this tag group pointing to the same site."
                },
                "external": {
                 "type": "array",
                 "items": {},
                 "description": "URLs of this tag group pointing to external sites."
                }
               }
              }
             },
             "forms": {
              "type": "array",
              "items": {
               "type": "object",
               "properties": {
                "id": {
                 "type": "string",
                 "description": "ID attribute of the form."
                },
                "class": {
                 "type": "string",
                 "description": "Class attribute of the form."
                },
                "method": {
                 "type": "string",
                 "description": "HTTP method of the form, e.g. post."
                },
                "action": {
                 "type": "string",
                 "description": "Action URL the form submits to."
                },
                "enctype": {
                 "type": "string",
                 "description": "Encoding type of the form, if set."
                },
                "target": {
                 "type": "string",
                 "description": "Target attribute of the form, if set."
                },
                "autocomplete": {
                 "type": "string",
                 "description": "Autocomplete attribute of the form, if set."
                },
                "has_password_fields": {
                 "type": "boolean",
                 "description": "Returns true if the form contains password fields."
                },
                "has_hidden_fields": {
                 "type": "boolean",
                 "description": "Returns true if the form contains hidden fields."
                },
                "components": {
                 "type": "array",
                 "items": {},
                 "description": "Form components; each item has tag, type, id, name, class, placeholder, value, required, minlength, maxlength and text."
                }
               }
              },
              "description": "HTML forms found on the page."
             }
            }
           },
           "description": "Hops of the request chain; one item per request, from the submitted URL to the final destination."
          },
          "final_url": {
           "type": "object",
           "properties": {
            "url": {
             "type": "string",
             "description": "The last URL reached after following all redirects."
            },
            "protocol": {
             "type": "string",
             "description": "HTTP protocol version of the final response."
            },
            "status": {
             "type": "string",
             "description": "Status of the final URL: online (2xx), redirect (3xx terminal), client_error (4xx), server_error (5xx), offline (no response)."
            },
            "status_code": {
             "type": "integer",
             "description": "HTTP status code of the final response. 0 if no response was received."
            },
            "status_message": {
             "type": "string",
             "description": "HTTP status message of the final response."
            }
           }
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "url": "http://wikipedia.com/",
         "unwrapped_url": "",
         "debug_message": "",
         "chain_status": "complete",
         "redirect_stats": {
          "redirects_found": 2,
          "followed_redirects": 2,
          "duplicate_redirects": 0,
          "http_to_https_redirects": 1,
          "https_to_http_redirects": 0,
          "external_redirects": 1,
          "same_origin_redirects": 0,
          "cross_origin_redirects": 2
         },
         "request_stats": {
          "total_requests": 3,
          "failed_requests": 0,
          "slow_requests": 0,
          "ssl_errors": 0,
          "avg_elapsed_ms": 285,
          "max_elapsed_ms": 374
         },
         "chain": [
          {
           "url": "http://wikipedia.com/",
           "hop": 0,
           "protocol": "HTTP/1.1",
           "status_code": 301,
           "status_message": "Moved Permanently",
           "content_type": "text/html",
           "can_resolve": true,
           "connection_error": false,
           "redirect_to": "https://wikipedia.com/",
           "redirect_type": "3xx_redirect",
           "redirect_info": {
            "http_to_https": true,
            "https_to_http": false,
            "non_www_to_www": false,
            "www_to_non_www": false,
            "external_redirect": false,
            "same_origin": false,
            "cross_origin": true,
            "same_scheme": false,
            "same_domain": true,
            "same_host": true,
            "same_port": false
           },
           "redirect_followed": true,
           "ip": "185.15.59.226",
           "url_parts": {
            "scheme": "http",
            "host": "wikipedia.com",
            "host_nowww": "wikipedia.com",
            "port": 80,
            "path": "/",
            "query": ""
           },
           "domain_parts": {
            "root_domain": "wikipedia.com",
            "subdomain": "",
            "tld": "com"
           },
           "valid_ssl": false,
           "elapsed_ms": 177
          },
          {
           "url": "https://wikipedia.com/",
           "hop": 1,
           "protocol": "HTTP/1.1",
           "status_code": 301,
           "status_message": "Moved Permanently",
           "content_type": "text/html",
           "can_resolve": true,
           "connection_error": false,
           "redirected_from": "http://wikipedia.com/",
           "redirect_to": "https://www.wikipedia.org/",
           "redirect_type": "3xx_redirect",
           "redirect_info": {
            "http_to_https": false,
            "https_to_http": false,
            "non_www_to_www": false,
            "www_to_non_www": false,
            "external_redirect": true,
            "same_origin": false,
            "cross_origin": true,
            "same_scheme": true,
            "same_domain": false,
            "same_host": false,
            "same_port": true
           },
           "redirect_followed": true,
           "ip": "185.15.59.226",
           "url_parts": {
            "scheme": "https",
            "host": "wikipedia.com",
            "host_nowww": "wikipedia.com",
            "port": 443,
            "path": "/",
            "query": ""
           },
           "domain_parts": {
            "root_domain": "wikipedia.com",
            "subdomain": "",
            "tld": "com"
           },
           "valid_ssl": true,
           "ssl_details": {
            "certificate_found": true,
            "ssl_errors": false,
            "name_match": true,
            "expired": false,
            "valid": true,
            "self_signed": false,
            "issuer": {
             "common_name": "E8",
             "organization": [
              "Let's Encrypt"
             ],
             "organizational_unit": [],
             "location": [],
             "state": [],
             "country": [
              "US"
             ]
            },
            "subject": {
             "common_name": "wikipedia.com",
             "organization": [],
             "organizational_unit": [],
             "location": [],
             "state": [],
             "country": []
            },
            "valid_from": "Mon, 23 Feb 2026 19:59:09 UTC",
            "valid_to": "Sun, 24 May 2026 19:59:08 UTC",
            "valid_days_left": 63,
            "expired_from_days": 0,
            "serial_number": "623dc3867ce9c736adc88a61b43e0f9e73e",
            "fingerprint_sha1": "cc2a48be4cbfecc7b5cddf3783bd3b188573fdf8",
            "fingerprint_sha256": "525174022c16125f127a9f34adc01c5dac8a1de93205588acc14a26d24c29ea3",
            "algorithm": "ECDSA-SHA384",
            "key_algorithm": "ECDSA",
            "key_size": 256,
            "type": "Domain Validation"
           },
           "elapsed_ms": 306
          },
          {
           "url": "https://www.wikipedia.org/",
           "hop": 2,
           "protocol": "HTTP/1.1",
           "status_code": 200,
           "status_message": "OK",
           "content_type": "text/html",
           "can_resolve": true,
           "connection_error": false,
           "redirected_from": "https://wikipedia.com/",
           "ip": "185.15.59.224",
           "html_info": {
            "title": "Wikipedia",
            "description": "Wikipedia is a free online encyclopedia, created and edited by volunteers around the world and hosted by the Wikimedia Foundation.",
            "keywords": "",
            "author": "",
            "robots": "",
            "googlebot": "",
            "canonical": "",
            "og_image": "https://upload.wikimedia.org/wikipedia/en/thumb/8/80/Wikipedia-logo-v2.svg/2244px-Wikipedia-logo-v2.svg.png",
            "og_type": "website",
            "og_site_name": "",
            "og_url": "",
            "article_publisher": "",
            "twitter_site": "",
            "fb_app_id": "",
            "ld_organization": "",
            "ld_url": "",
            "ld_logo": "",
            "ld_same_as": [],
            "generator": [],
            "refresh_url": "",
            "apple_itunes_app_id": "",
            "apple_itunes_app_name": "",
            "icon": "https://www.wikipedia.org/static/favicon/wikipedia.ico",
            "apple_touch_icon": [
             {
              "size": "",
              "href": "https://www.wikipedia.org/static/apple-touch/wikipedia.png"
             }
            ],
            "lang": "en",
            "hreflang": [],
            "h1": [
             "Wikipedia The Free Encyclopedia",
             "Wikipedia 25 years of the free encyclopedia"
            ],
            "h2": [
             "Unlock birthday surprises on Wikipedia",
             "1,000,000+ articles",
             "100,000+ articles",
             "10,000+ articles",
             "1,000+ articles",
             "100+ articles"
            ],
            "h3": []
           },
           "url_parts": {
            "scheme": "https",
            "host": "www.wikipedia.org",
            "host_nowww": "wikipedia.org",
            "port": 443,
            "path": "/",
            "query": ""
           },
           "domain_parts": {
            "root_domain": "wikipedia.org",
            "subdomain": "www",
            "tld": "org"
           },
           "valid_ssl": true,
           "ssl_details": {
            "certificate_found": true,
            "ssl_errors": false,
            "name_match": true,
            "expired": false,
            "valid": true,
            "self_signed": false,
            "issuer": {
             "common_name": "E8",
             "organization": [
              "Let's Encrypt"
             ],
             "organizational_unit": [],
             "location": [],
             "state": [],
             "country": [
              "US"
             ]
            },
            "subject": {
             "common_name": "*.wikipedia.org",
             "organization": [],
             "organizational_unit": [],
             "location": [],
             "state": [],
             "country": []
            },
            "valid_from": "Fri, 06 Feb 2026 21:41:32 UTC",
            "valid_to": "Thu, 07 May 2026 21:41:31 UTC",
            "valid_days_left": 47,
            "expired_from_days": 0,
            "serial_number": "666163cc3790d2d917d56a0dd1c87974320",
            "fingerprint_sha1": "2c9db350d2b084116c7a12bb629b7397d42da8fa",
            "fingerprint_sha256": "3461aaf30b87e6ffb74969ae7a96efa4e8e1c6a2a39a213ed3abd5d17de9279f",
            "algorithm": "ECDSA-SHA384",
            "key_algorithm": "ECDSA",
            "key_size": 256,
            "type": "Domain Validation"
           },
           "elapsed_ms": 374
          }
         ],
         "final_url": {
          "url": "https://www.wikipedia.org/",
          "protocol": "HTTP/1.1",
          "status": "online",
          "status_code": 200,
          "status_message": "OK"
         },
         "elapsed_ms": 857
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 1,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "url": {
          "type": "string",
          "description": "URL to submit, e.g. http://wikipedia.com."
         },
         "follow_redirects": {
          "type": "boolean",
          "description": "Specify if redirect URLs should be followed.",
          "default": true
         },
         "follow_external_redirects": {
          "type": "boolean",
          "description": "Specify if external redirect URLs should be followed.",
          "default": true
         },
         "follow_meta_redirects": {
          "type": "boolean",
          "description": "Specify if meta refresh redirects should be followed.",
          "default": false
         },
         "follow_header_redirects": {
          "type": "boolean",
          "description": "Specify if header refresh redirects should be followed.",
          "default": false
         },
         "follow_custom_redirects": {
          "type": "boolean",
          "description": "Specify if custom redirects (e.g. site-specific) should be followed.",
          "default": false
         },
         "max_redirects": {
          "type": "integer",
          "description": "Set maximum number of redirects to follow (max 10).",
          "default": 10
         },
         "verify_ssl": {
          "type": "boolean",
          "description": "Enable or disable SSL certificate verification. New response fields (when enabled): valid_ssl ssl_details.",
          "default": true
         },
         "check_ssl_revocation": {
          "type": "boolean",
          "description": "Enable SSL revocation check. Requires \"verify_ssl\": true. New response fields (when enabled): revoked inside ssl_details.",
          "default": false
         },
         "user_agent": {
          "type": "string",
          "description": "Can be desktop (default, a random desktop user agent), desktop-firefox, desktop-chrome, desktop-edge or mobile.",
          "default": "desktop"
         },
         "referer": {
          "type": "string",
          "description": "Can be \"origin\" (the base URL {scheme}://{host}/), \"google\", \"yahoo\", \"duckduckgo\", or \"bing\"."
         },
         "accept_language": {
          "type": "string",
          "description": "Change the Accept-Language HTTP header, format like en or en-US.",
          "default": "en-US"
         },
         "basic_auth_username": {
          "type": "string",
          "description": "Set username for Basic Authentication."
         },
         "basic_auth_password": {
          "type": "string",
          "description": "Set password for Basic Authentication."
         },
         "authorization_bearer": {
          "type": "string",
          "description": "Set the authorization bearer token."
         },
         "connect_timeout": {
          "type": "integer",
          "description": "Set a connection timeout in seconds (max 15) for each followed URL.",
          "default": 10
         },
         "include_response_headers": {
          "type": "boolean",
          "description": "Enable the retrieval of response headers if needed. New response fields (when enabled): response_headers.",
          "default": false
         },
         "include_response_body": {
          "type": "boolean",
          "description": "Enable the retrieval of response body (in base64) if needed. New response fields (when enabled): body_base64 body_md5_hash_original body_size_bytes body_truncated.",
          "default": false
         },
         "include_response_body_text": {
          "type": "boolean",
          "description": "Include the response body in plain text only (no HTML tags). New response fields (when enabled): body_text.",
          "default": false
         },
         "include_favicon_details": {
          "type": "boolean",
          "description": "Include favicon details, e.g. the base64-encoded file, MD5 hash, and image dimensions. New response fields (when enabled): favicon_details.",
          "default": false
         },
         "include_og_image_details": {
          "type": "boolean",
          "description": "Include og:image details, e.g. the base64-encoded file, MD5 hash, and image dimensions. New response fields (when enabled): og_image_details.",
          "default": false
         },
         "include_links": {
          "type": "boolean",
          "description": "Extract internal and external links categorized by tags, including links found in inline scripts. New response fields (when enabled): links.",
          "default": false
         },
         "include_forms": {
          "type": "boolean",
          "description": "Extract and parse every form and all its elements (input, button, etc.). New response fields (when enabled): forms.",
          "default": false
         },
         "clean_page_content": {
          "type": "boolean",
          "description": "Clean HTML content by removing extra whitespace and newlines.",
          "default": false
         },
         "custom_proxy": {
          "type": "string",
          "description": "Custom proxy URL, e.g. http://user:pass@example.com:8000."
         },
         "use_premium_proxy": {
          "type": "boolean",
          "description": "Use a premium proxy *BETA*.",
          "default": false
         },
         "use_http2": {
          "type": "boolean",
          "description": "Use HTTP/2 to make the request.",
          "default": false
         }
        },
        "required": [
         "url"
        ]
       },
       "example": {
        "url": "http://wikipedia.com"
       }
      }
     }
    }
   }
  },
  "/url-to-pdf": {
   "post": {
    "operationId": "url_to_pdf",
    "tags": [
     "URL to PDF API"
    ],
    "summary": "URL to PDF API",
    "description": "Convert any URL into a printable, high quality PDF document rendered by a real browser.\n\nConsumes 20 credits per successful request (non-200 responses never consume credits). Can take up to 150 seconds; set your client timeout accordingly. Full reference: https://docs.apivoid.com/url-to-pdf-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/url-to-pdf-api/",
     "description": "URL to PDF API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "url": {
           "type": "string",
           "description": "URL submitted for the PDF rendering."
          },
          "rendered_file": {
           "type": "object",
           "properties": {
            "format": {
             "type": "string",
             "description": "Format of the rendered file, e.g. PDF."
            },
            "date_time_utc": {
             "type": "string",
             "description": "Date and time (UTC) of when the file was rendered."
            },
            "base64_file": {
             "type": "string",
             "description": "The rendered PDF file encoded in base64."
            },
            "file_size_readable": {
             "type": "string",
             "description": "File size in human-readable format, e.g. 344.53 KB."
            },
            "file_size_bytes": {
             "type": "integer",
             "description": "File size in bytes."
            }
           }
          },
          "http_response": {
           "type": "object",
           "properties": {
            "final_url": {
             "type": "string",
             "description": "Final URL after following redirects."
            },
            "status_code": {
             "type": "integer",
             "description": "HTTP status code returned by the server."
            },
            "content_type": {
             "type": "string",
             "description": "Content type of the page, e.g. text/html."
            },
            "page_content_empty": {
             "type": "boolean",
             "description": "Returns true if the page content is empty."
            },
            "ip": {
             "type": "string",
             "description": "IP address of the server that served the page."
            }
           }
          },
          "html_info": {
           "type": "object",
           "properties": {
            "title": {
             "type": "string",
             "description": "Title of the page."
            },
            "description": {
             "type": "string",
             "description": "Meta description of the page."
            },
            "og_image": {
             "type": "string",
             "description": "Open Graph image URL of the page."
            },
            "icon": {
             "type": "string",
             "description": "Favicon URL of the page."
            },
            "og_site_name": {
             "type": "string",
             "description": "Open Graph site name of the page."
            },
            "ld_organization": {
             "type": "string",
             "description": "Organization name found in JSON-LD structured data."
            },
            "canonical": {
             "type": "string",
             "description": "Canonical URL of the page."
            },
            "robots": {
             "type": "string",
             "description": "Robots meta tag of the page."
            },
            "twitter_site": {
             "type": "string",
             "description": "Twitter site handle of the page."
            },
            "lang": {
             "type": "string",
             "description": "Language declared by the page, e.g. en-US."
            }
           }
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "url": "https://apple.com/",
         "rendered_file": {
          "format": "PDF",
          "date_time_utc": "2024-11-29 19:00:32",
          "base64_file": "JVBERi0xLjcKJeLjz9MKMSAwIG9iago8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFI+PgplbmRvYmoKMiAwIG9iago8PC9UICQUERBLEgWLA37KKoEbFrrKiINbH3rlhQsWHABhqxgQiKCg...",
          "file_size_readable": "344.53 KB",
          "file_size_bytes": 352795
         },
         "http_response": {
          "final_url": "https://www.apple.com/",
          "status_code": 200,
          "content_type": "text/html",
          "page_content_empty": false,
          "ip": "69.192.160.210"
         },
         "html_info": {
          "title": "Apple",
          "description": "Discover the innovative world of Apple and shop everything iPhone, iPad, Apple Watch, Mac, and Apple TV, plus explore accessories, entertainment, and expert device support.",
          "og_image": "https://www.apple.com/ac/structured-data/images/open_graph_logo.png?202110180743",
          "icon": "",
          "og_site_name": "Apple",
          "ld_organization": "Apple",
          "canonical": "https://www.apple.com/",
          "robots": "",
          "twitter_site": "",
          "lang": "en-US"
         },
         "elapsed_ms": 5763
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 20,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "url": {
          "type": "string",
          "description": "URL to submit, e.g. https://apple.com/."
         },
         "viewport_width": {
          "type": "integer",
          "description": "Browser viewport width in pixels (max 5000).",
          "default": 1920
         },
         "viewport_height": {
          "type": "integer",
          "description": "Browser viewport height in pixels (max 10000).",
          "default": 1080
         },
         "user_agent": {
          "type": "string",
          "description": "Can be desktop (default, a random desktop user agent) or mobile.",
          "default": "desktop"
         },
         "accept_language": {
          "type": "string",
          "description": "Change the Accept-Language HTTP header, format like en-US.",
          "default": "en-US"
         },
         "delay": {
          "type": "integer",
          "description": "Wait N seconds (max 10) before converting the URL to PDF.",
          "default": 0
         },
         "basic_auth_username": {
          "type": "string",
          "description": "Set username for Basic Authentication."
         },
         "basic_auth_password": {
          "type": "string",
          "description": "Set password for Basic Authentication."
         },
         "authorization_bearer": {
          "type": "string",
          "description": "Set the authorization bearer token."
         },
         "custom_header": {
          "type": "string",
          "description": "A custom header, e.g. X-key: 690d1f9e-5a53-45ad-997d-a23143a0d068."
         },
         "disable_js": {
          "type": "boolean",
          "description": "Disable JavaScript.",
          "default": false
         },
         "disable_popups": {
          "type": "boolean",
          "description": "Disable alerts, cookie consents and confirmation dialogs.",
          "default": true
         },
         "disable_images": {
          "type": "boolean",
          "description": "Disable loading of images.",
          "default": false
         },
         "disable_ads": {
          "type": "boolean",
          "description": "Disable advertisements.",
          "default": true
         },
         "emulate_media": {
          "type": "string",
          "description": "Emulate a media type, can be screen or print.",
          "default": "screen"
         },
         "pdf_papersize_width": {
          "type": "integer",
          "description": "Change PDF paper width in pixels (max 5000).",
          "default": 0
         },
         "pdf_papersize_height": {
          "type": "integer",
          "description": "Change PDF paper height in pixels (max 10000).",
          "default": 0
         },
         "pdf_format": {
          "type": "string",
          "description": "Change PDF format, can be Letter, Legal, Tabloid, Ledger, A0, A1, A2, A3, A4, A5, A6.",
          "default": "A4"
         },
         "pdf_margin": {
          "type": "integer",
          "description": "Change PDF margin.",
          "default": 0
         },
         "pdf_show_background": {
          "type": "boolean",
          "description": "Show the background of the web page.",
          "default": true
         },
         "pdf_landscape": {
          "type": "boolean",
          "description": "Change the PDF orientation to landscape.",
          "default": false
         },
         "pdf_page_ranges": {
          "type": "string",
          "description": "Select page ranges, can be 1 or 1-3 (for example)."
         },
         "pdf_scale": {
          "type": "number",
          "description": "Scale the PDF, must be between 0.1 and 2."
         },
         "pdf_one_page": {
          "type": "boolean",
          "description": "Try to fit the web page into a single PDF page.",
          "default": false
         }
        },
        "required": [
         "url"
        ]
       },
       "example": {
        "url": "https://apple.com/"
       }
      }
     }
    }
   }
  },
  "/vpn-test": {
   "post": {
    "operationId": "vpn_test",
    "tags": [
     "VPN Test API"
    ],
    "summary": "VPN Test API",
    "description": "Check if a website is accessible from a VPN connection: the URL is requested through a VPN IP address and the API returns the HTTP status code, response headers and page details as seen from the VPN. Useful to verify whether a site blocks or challenges VPN visitors.\n\nConsumes 10 credits per successful request (non-200 responses never consume credits). Full reference: https://docs.apivoid.com/vpn-test-api/",
    "externalDocs": {
     "url": "https://docs.apivoid.com/vpn-test-api/",
     "description": "VPN Test API reference"
    },
    "responses": {
     "200": {
      "description": "Successful response",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "url": {
           "type": "string",
           "description": "URL submitted for the VPN accessibility test."
          },
          "accessible": {
           "type": "boolean",
           "description": "Returns true if the URL is accessible from a VPN connection."
          },
          "status_code": {
           "type": "integer",
           "description": "HTTP status code returned by the server."
          },
          "debug_message": {
           "type": "string",
           "description": "Debug or error details about the request, if any. Empty string if none."
          },
          "response_headers": {
           "type": "object",
           "properties": {
            "accept-ch": {
             "type": "string"
            },
            "cache-control": {
             "type": "string"
            },
            "cf-chl-out": {
             "type": "string"
            },
            "cf-mitigated": {
             "type": "string"
            },
            "cf-ray": {
             "type": "string"
            },
            "content-type": {
             "type": "string"
            },
            "critical-ch": {
             "type": "string"
            },
            "cross-origin-embedder-policy": {
             "type": "string"
            },
            "cross-origin-opener-policy": {
             "type": "string"
            },
            "cross-origin-resource-policy": {
             "type": "string"
            },
            "date": {
             "type": "string"
            },
            "expires": {
             "type": "string"
            },
            "nel": {
             "type": "string"
            },
            "origin-agent-cluster": {
             "type": "string"
            },
            "permissions-policy": {
             "type": "string"
            },
            "referrer-policy": {
             "type": "string"
            },
            "report-to": {
             "type": "string"
            },
            "server": {
             "type": "string"
            },
            "server-timing": {
             "type": "string"
            },
            "set-cookie": {
             "type": "string"
            },
            "strict-transport-security": {
             "type": "string"
            },
            "vary": {
             "type": "string"
            },
            "x-content-options": {
             "type": "string"
            },
            "x-content-type-options": {
             "type": "string"
            },
            "x-frame-options": {
             "type": "string"
            }
           },
           "description": "HTTP response headers returned by the server to the VPN connection, keyed by lowercase header name."
          },
          "html_info": {
           "type": "object",
           "properties": {
            "title": {
             "type": "string",
             "description": "Title of the page returned to the VPN connection."
            },
            "description": {
             "type": "string",
             "description": "Meta description of the page returned to the VPN connection."
            }
           }
          },
          "elapsed_ms": {
           "type": "integer",
           "description": "Time taken to process the request, in milliseconds."
          }
         }
        },
        "example": {
         "url": "https://www.patreon.com/",
         "accessible": false,
         "status_code": 403,
         "debug_message": "",
         "response_headers": {
          "accept-ch": "Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA",
          "cache-control": "private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0",
          "cf-chl-out": "oCfcenr8aisw9BCZVlO6UgCVIhba0yavoWofUshfKsoxS0qPqaCDPROZv8sI03NIyTxkrqaQIJVWCsIokIan/hOb+XiEqx8ZW4jgkQL0MlWbbx/sagh1oKQHLg613cykA20IPDKlkluL4BK+pb+s1Q==$IHuTY7AGaBAQPSt5CN7cvQ==",
          "cf-mitigated": "challenge",
          "cf-ray": "927ae4a10dff7291-EWR",
          "content-type": "text/html; charset=UTF-8",
          "critical-ch": "Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA",
          "cross-origin-embedder-policy": "require-corp",
          "cross-origin-opener-policy": "same-origin",
          "cross-origin-resource-policy": "same-origin",
          "date": "Fri, 28 Mar 2025 23:26:33 GMT",
          "expires": "Thu, 01 Jan 1970 00:00:01 GMT",
          "nel": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}",
          "origin-agent-cluster": "?1",
          "permissions-policy": "accelerometer=(),autoplay=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()",
          "referrer-policy": "same-origin",
          "report-to": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=DnAvbTN8ie3uDz84OovG1CRA4bp7jaiWwZ5%2FH9ZB2zORWklOm2KEPX7EZQnNt7N8fKcEtSGDvZOC7BgTMkoifnTAc1gWSHDDhiC%2FCOKTAvHUUavXyBwikf%2BGaWGEws7z3w%3D%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}",
          "server": "cloudflare",
          "server-timing": "chlray;desc=\"927ae4a10dff7291\"",
          "set-cookie": "__cf_bm=lCAZXpgkI5.hX9ghhJXZEPbjBpR64uTbpuNr_mlVlB8-1743204393-1.0.1.1-JFpzaxmPUAykjwdevJPx1vsBSuZ4Vf80VDrCM_jF3VtoRVIUWUsUOh8KKfQ4Y137KQa2JiGy3lXyfoibhq32vXuFQUOvtgzPGG1oFb6k7kKxWKoQ6rzYS0offJr7_.ZU; path=/; expires=Fri, 28-Mar-25 23:56:33 GMT; domain=.patreon.com; HttpOnly; Secure; SameSite=None",
          "strict-transport-security": "max-age=2592000",
          "vary": "Accept-Encoding",
          "x-content-options": "nosniff",
          "x-content-type-options": "nosniff",
          "x-frame-options": "SAMEORIGIN"
         },
         "html_info": {
          "title": "Just a moment...",
          "description": ""
         },
         "elapsed_ms": 29
        }
       }
      }
     },
     "4XX": {
      "$ref": "#/components/responses/ClientError"
     },
     "5XX": {
      "$ref": "#/components/responses/ServerError"
     }
    },
    "x-credits-per-request": 10,
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "url": {
          "type": "string",
          "description": "URL to submit, e.g. https://www.patreon.com/."
         }
        },
        "required": [
         "url"
        ]
       },
       "example": {
        "url": "https://www.patreon.com/"
       }
      }
     }
    }
   }
  }
 },
 "components": {
  "securitySchemes": {
   "ApiKeyAuth": {
    "type": "apiKey",
    "in": "header",
    "name": "X-API-Key",
    "description": "API key from your dashboard. See https://docs.apivoid.com/authentication/"
   }
  },
  "schemas": {
   "Error": {
    "type": "object",
    "properties": {
     "error": {
      "type": "string",
      "description": "Human-readable error message."
     }
    },
    "required": [
     "error"
    ]
   }
  },
  "responses": {
   "ClientError": {
    "description": "Client error (invalid API key, missing/invalid parameter, rate limit). Fix the request before retrying. See https://docs.apivoid.com/errors/",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/Error"
      }
     }
    }
   },
   "ServerError": {
    "description": "Server error; safe to retry with incremental backoff. See https://docs.apivoid.com/errors/",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/Error"
      }
     }
    }
   }
  }
 }
}