# Endpoint api.zaks.web.za/testhttp Tests if http and/or https on a given IPv4 Address or Domain is working and accessible from the Internet at large. ## Basic Usage By invoking the endpoint with no data, it will test the http and https connectivity to your current IP address. ### Usage example: ``` curl "http://api.zaks.web.za/testhttp" ``` ### Response example: ``` { "http": { "ipv4": "12.34.56.78", "port": 80, "result": "OK", "message": "HTTP/1.1 301 Moved Permanently" }, "https": { "ipv4": "12.34.56.78", "port": 443, "result": "OK", "message": "HTTP/2 200", "certificate": { "issuer": "C = US, O = Let's Encrypt, CN = R10", "subject": "CN = domain.tld", "expiry": "Aug 11 21:26:10 2025 GMT" } }, "notice": "This is a free public endpoint. Visit https://git.zaks.web.za/zaks-web/public-api-endpoints for documentation on available endpoints." } ``` ## Working with Query Parameters You can add query parameters to the URI of the endpoint. Valid query parameters: **address={domain|ipv4}** - Using a domain (excluding the http:// or https://) will result in the test being carried out on supplied domain. - Using a public IPv4 address will result in the test being carried out on supplied public IPv4 address. > Currently IPv6 is not support as the API is hosted in South Africa and IPv6 roll out has not even begun here. **http={false|port}** - Setting this to false will exclude a test on http. - Setting this to a port (1-65535) will result in http being test on supplied port rather than the default port 80. **https={false|port}** - Setting this to false will exclude a test on https. - Setting this to a port (1-65535) will result in https being test on supplied port rather than the default port 443. ### Usage example: ``` curl "http://api.zaks.web.za/testhttp?http=false&address=google.com" ``` ### Response example: ``` { "https": { "domain": "google.com", "port": 443, "result": "OK", "message": "HTTP/2 301", "certificate": { "issuer": "C = US, O = Google Trust Services, CN = WR2", "subject": "CN = *.google.com", "expiry": "Jul 14 08:40:41 2025 GMT" } }, "notice": "This is a free public endpoint. For more information visit https://git.zaks.web.za/zaks-web/public-api-endpoints" } ``` ## Supplying JSON data You can supply the parameters as JSON data in the header ### Usage example: ``` curl "http://api.zaks.web.za/testhttp" \ -X POST \ -H 'Content-Type: application/json' \ -d '{"address": "google.com", "http": false}' ``` ### Response example: ``` { "https": { "domain": "google.com", "port": 443, "result": "OK", "message": "HTTP/2 301", "certificate": { "issuer": "C = US, O = Google Trust Services, CN = WR2", "subject": "CN = *.google.com", "expiry": "Jul 14 08:40:41 2025 GMT" } }, "notice": "This is a free public endpoint. For more information visit https://git.zaks.web.za/zaks-web/public-api-endpoints" } ```