Digizap

Your digital pocket knife.

Nederlands

API documentation

Digizap exposes 15 measurement endpoints publicly — exactly the ones the tools on this site use themselves. Free, no key, no account. The machine-readable OpenAPI 3.1 specification lives at /openapi.json; import it into Swagger Editor, Postman or your own code.

Common rules

OpenAPI specification

The specification (0.2.0) lives at /openapi.json and is written in English — OpenAPI's standard language. The page and the API answers are Dutch by default; ?lang=en makes them English.

Endpoints

GET /api

Index: application name, version and the full endpoint list.

Limit: at most 60 requests per 60 seconds per address.

Live example call: /api

GET /api/scan

The full website scan: HTML, response headers, redirect chain, robots and sitemap findings, network measurements (DNS, connect, TLS, TTFB, total) and asset weight.

Limit: at most 8 requests per 60 seconds per address, shared in one bucket with /api/fetch.

ParameterRequiredMeaning
urlyesTarget address; bare domain names are accepted too.

Live example call: /api/scan?url=https://digizap.nl

GET /api/fetch

The legacy entry point to the exact same scan as /api/scan — for your own scripts and old bookmarks. Shares its request budget with /api/scan.

Limit: at most 8 requests per 60 seconds per address, shared in one bucket with /api/scan.

ParameterRequiredMeaning
urlyesTarget address; bare domain names are accepted too.

Live example call: /api/fetch?url=https://digizap.nl

GET /api/meta

Page HTML with a weight ceiling plus what our server found per requested asset: status, content type, bytes and manifest fields.

Limit: at most 8 requests per 60 seconds per address.

ParameterRequiredMeaning
urlyesTarget address; bare domain names are accepted too.
assetsnoComma-separated asset paths or URLs to measure along with the page.

Live example call: /api/meta?url=https://digizap.nl&assets=/styles.css,/zap.js

GET /api/redirects

The redirect chain hop by hop, including status and headers per hop; by default also the chains of the bare and www variants alongside.

Limit: at most 8 requests per 60 seconds per address.

ParameterRequiredMeaning
urlyesTarget address; bare domain names are accepted too.
variantsnovariants=0 drops the side variants and measures only the given URL.

Live example call: /api/redirects?url=https://digizap.nl

GET /api/robots

A host's crawl rules: robots.txt parsed group by group (RFC 9307), its sitemap(s) entry by entry, and the cross-check whether sitemap URLs stand in paths that robots forbids.

Limit: at most 8 requests per 60 seconds per address.

ParameterRequiredMeaning
urlyesTarget address; bare domain names are accepted too.

Live example call: /api/robots?url=https://digizap.nl

GET /api/dns

DNS records of a domain (A, AAAA, NS, MX, TXT, CNAME, SOA, CAA, SRV), reverse lookup on an IP address, plus SPF and DMARC interpretation with a grade.

Limit: at most 20 requests per 60 seconds per address.

ParameterRequiredMeaning
domainnoDomain to look up — pass domain or ip.
ipnoIPv4 or IPv6 address for the reverse lookup.
typesnoRecord types to query separately, comma-separated (A, AAAA, MX, TXT, …).

Live example call: /api/dns?domain=digizap.nl&types=A,MX,TXT

GET /api/dns-compare

The same domain against four public resolvers, with the differences in answer, TTL and outcome alongside.

Limit: at most 10 requests per 60 seconds per address.

ParameterRequiredMeaning
domainyesDomain queried against all four resolvers.
typesnoRecord types to query separately, comma-separated (A, AAAA, MX, TXT, …).

Live example call: /api/dns-compare?domain=digizap.nl

GET /api/email

What an email address says: structure, mailbox domain, MX presence and how that domain protects its sender (SPF, DMARC).

Limit: at most 15 requests per 60 seconds per address.

ParameterRequiredMeaning
addressyesThe email address; ?email= is accepted as the older spelling.

Live example call: /api/email?address=naam%40digizap.nl

GET /api/mail-security

A domain's mail defense in one pass: SPF, DKIM selectors, DMARC policy and MX, with findings and a grade.

Limit: at most 8 requests per 60 seconds per address.

ParameterRequiredMeaning
domainyesDomain whose mail security is measured.
selectorsnoExtra DKIM selectors to test along, comma-separated.

Live example call: /api/mail-security?domain=digizap.nl

GET /api/spf

SPF evaluation of a domain against a sending IP address (with optional HELO): match, refusal or soft fail, including the include chain.

Limit: at most 15 requests per 60 seconds per address.

ParameterRequiredMeaning
domainyesSender domain.
ipyesSending IP address.
helonoHELO/EHLO of the mail server, included in the evaluation.

Live example call: /api/spf?domain=digizap.nl&ip=152.53.104.68

GET /api/mail-ports

Which mail ports (25, 465, 587) are open on a domain or mail server, with the greeting each server gives; MX servers are tested first by default.

Limit: at most 6 requests per 60 seconds per address.

ParameterRequiredMeaning
hostyesDomain or mail server; ?domain= is accepted as the older spelling.
portsnoPort numbers to test separately, comma-separated.
mxnomx=0 skips the MX lookup and tests only the given host.

Live example call: /api/mail-ports?host=mail.digizap.nl

GET /api/headers

The response headers of a URL: status, security headers, cache policy and content length.

Limit: at most 12 requests per 60 seconds per address.

ParameterRequiredMeaning
urlyesTarget address; bare domain names are accepted too.

Live example call: /api/headers?url=https://digizap.nl

GET /api/cert

The certificate of an https target: issuer, validity, domain names (SAN), protocol and key strength, plus which TLS versions the server really accepts — measured version by version. Untrusted and expired certificates are reported as measured.

Limit: at most 12 requests per 60 seconds per address.

ParameterRequiredMeaning
urlyeshttps addresses only; other protocols answer with 400.

Live example call: /api/cert?url=https://digizap.nl

GET /api/reach

Whether a URL or domain is reachable: status, timing and repeated sample measurements, with separate measurements per address family (IPv4 and IPv6) and a parity verdict.

Limit: at most 8 requests per 60 seconds per address.

ParameterRequiredMeaning
urlyesTarget address; bare domain names are accepted too.
samplesnoNumber of repeated measurements, 1 to 5; default 3.

Live example call: /api/reach?url=https://digizap.nl

GET /api/ports

Which service ports (22, 53, 80, 443, 3389, …) on a domain or host name are reachable: open, closed or silent, per port with time and what the service itself said first. No grade — the measurement speaks.

Limit: at most 6 requests per 60 seconds per address.

ParameterRequiredMeaning
hostyesDomain or host name; ?domain= is accepted as the older spelling.
portsnoPort numbers from the fixed list (21, 22, 53, 80, 443, 3389, 8080, 8443), comma-separated; default 22, 80 and 443. Ports off the list are not investigated and reported as portsSkipped.

Live example call: /api/ports?host=digizap.nl&ports=22,80,443