DNS och infrastruktur 1 Slutpunkter 8 Nyckelfunktioner

API för DNS-säkerhetanalys

Är din domän ordentligt skyddad? Vårt DNS-säkerhets-API analyserar SPF-, DKIM-, DMARC-, DNSSEC- och CAA-poster för att ge dig ett heltäckande säkerhetsbetyg med konkreta rekommendationer.

Category DNS och infrastruktur
Slutpunkter 1
Nyckelfunktioner 8
Vanliga frågor 4

Används av människor på fantastiska företag

VercelLLM PulseOLXCasa ModernaPipeCal.comBeehiivSnykTogglRemoteSprigDeel

Förtroendesignaler före integration

Transparent dokumentation, autentiserade anrop och synliga tillförlitlighetsdetaljer gör DomScan lättare att utvärdera före lansering.

I drift Tjänstestatus

Kontrollera tjänstens aktuella status och dokumenterade felsvar innan du integrerar.

OpenAPI API-material

OpenAPI, Swagger, Postman, CLI, SDK och MCP-länkar finns ett klick bort.

API-nycklar Skyddad åtkomst

Autentiserade endpoints använder API-nycklar med tydliga kreditkostnader före anrop.

10,000 Gratis kvot

Börja med 10 000 krediter per månad och uppgradera först när användningen växer.

Vad detta API hjälper dig att leverera

Använd sidan som en produktionsbrief: endpoints, exempel, responsform och workflow-delar som krävs för att koppla DomScan till din produkt.

Produktworkflows

Bädda in domänkontroller, DNS-intelligence, risksignaler eller berikning i onboarding, sök och interna verktyg.

Analystautomatisering

Ersätt upprepade manuella lookups med schemalagda jobb, alerts och reproducerbara utredningssteg.

Ren JSON-data

Använd förutsägbara fält, dokumenterade statuskoder och kreditkostnader istället för att skrapa leverantörssidor.

AI- och ops-verktyg

Mata agenter, dashboards, SOAR-playbooks och CRM:er via OpenAPI, SDK, Postman eller MCP.

Integrationsworkflow

En enkel väg från första request till repeterbar produktion.

1
Autentisera en gång

Skicka din API-nyckel med dokumenterad header och håll requests konsekventa mellan tjänster.

2
Fråga med exempel

Börja med curl- och HTTP-exempel och mappa sedan parametrarna till din applikationskod.

3
Drifta och övervaka

Använd statuskoder, kreditkostnader och responsfält för retries, loggar och alerts.

Utvecklarkit

Gå från sidan till maskinläsbara docs, request-samlingar, SDK:er eller agentverktyg.

Parameter- och responskarta

Granska inputs, outputfält och statuskoder innan endpointen kopplas in i din klient.

Requestparametrar

Parameter

domain
Responsfält

Exempelsvar

domainsecurity_scoresecurity_gradespfspf.existsspf.recordspf.validspf.policyspf.includesspf.dns_lookup_countspf.dns_lookup_limit_exceededspf.include_tree
Statustäckning

HTTP-statuskoder

200400401402429

Slutpunkter

GET /v1/dns/security
Krediter: 3Autentisering: Autentisering krävs
domain

Förtroendesignaler före integration

Transparent dokumentation, autentiserade anrop och synliga tillförlitlighetsdetaljer gör DomScan lättare att utvärdera före lansering.

Tjänstestatus API-material

OpenAPI, Swagger, Postman, CLI, SDK och MCP-länkar finns ett klick bort.

API-nycklar Skyddad åtkomst

Autentiserade endpoints använder API-nycklar med tydliga kreditkostnader före anrop.

Gratis kvot Registrera dig Gratis

Börja med 10 000 krediter per månad och uppgradera först när användningen växer.

Aktiv Exempelbegäran

Börja med curl- och HTTP-exempel och mappa sedan parametrarna till din applikationskod.

Nyckelfunktioner

SPF-analys

Validera SPF-poster och kontrollera vanliga felkonfigurationer.

DKIM-identifiering

Kontrollera DKIM-poster för vanliga väljare.

DMARC-validering

Analysera DMARC-policy, procentandel och rapporteringsadresser.

DNSSEC-kontroll

Verifiera att DNSSEC är aktiverat och korrekt konfigurerat.

CAA-poster

Kontrollera konfigurationen för certifikatutfärdarauktorisering.

Säkerhetsbetyg

Få ett betyg från 0 till 100 med bokstavsbetyg (A+ till F).

Konkreta rekommendationer

Tydlig vägledning för hur du förbättrar din säkerhetsnivå.

MTA-STS-identifiering

Kontrollera Strict Transport Security för Mail Transfer Agent.

Exempelbegäran

GET /v1/dns/security bash
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/dns/security?domain=google.com"

Exempelsvar

200 OK json
{
  "domain": "google.com",
  "security_score": 97,
  "security_grade": "A+",
  "spf": {
    "exists": true,
    "record": "v=spf1 include:_spf.google.com ~all",
    "valid": true,
    "policy": "softfail",
    "includes": [
      "_spf.google.com"
    ],
    "dns_lookup_count": 1,
    "dns_lookup_limit_exceeded": false,
    "include_tree": [
      {
        "domain": "_spf.google.com",
        "lookups": 1
      }
    ],
    "lookup_walk_count": 1,
    "macros_present": false,
    "macro_references": [],
    "walk": [
      {
        "domain": "google.com",
        "depth": 0,
        "record": "v=spf1 include:_spf.google.com ~all",
        "mechanisms": [
          "include:_spf.google.com",
          "~all"
        ],
        "includes": [
          "_spf.google.com"
        ],
        "redirect": null,
        "direct_lookup_count": 1,
        "total_lookup_count": 1,
        "macros_present": false,
        "macro_references": [],
        "multiple_records": 1
      }
    ],
    "walk_errors": [],
    "issues": []
  },
  "dkim": {
    "exists": true,
    "selectors_checked": [
      "google",
      "selector1",
      "selector2"
    ],
    "selectors_found": [
      "google"
    ],
    "valid": true
  },
  "dmarc": {
    "exists": true,
    "record": "v=DMARC1; p=reject; rua=mailto:[email protected]",
    "valid": true,
    "policy": "reject",
    "subdomain_policy": "reject",
    "percentage": 100,
    "rua": [
      "mailto:[email protected]"
    ],
    "ruf": [],
    "issues": []
  },
  "bimi": {
    "exists": true,
    "record": "v=BIMI1; l=https://example.com/logo.svg; a=https://example.com/vmc.pem",
    "logo_url": "https://example.com/logo.svg",
    "authority_url": "https://example.com/vmc.pem",
    "valid": true,
    "logo_fetch_ok": true,
    "logo_http_status": 200,
    "logo_content_type": "image/svg+xml",
    "logo_bytes": 2048,
    "logo_svg_detected": true,
    "vmc_present": true,
    "vmc_fetched": true,
    "vmc_http_status": 200,
    "vmc_content_type": "application/x-pem-file",
    "vmc_certificate_valid": true,
    "vmc_subject": "/CN=Example Inc VMC",
    "vmc_issuer": "/CN=Example Issuer",
    "vmc_not_before": "2026-01-01T00:00:00Z",
    "vmc_not_after": "2027-01-01T00:00:00Z",
    "vmc_days_to_expiry": 258,
    "vmc_fingerprint_sha256": "AA:BB:CC:DD",
    "vmc_san_domains": [
      "google.com"
    ],
    "errors": []
  },
  "dnssec": {
    "enabled": true,
    "valid": true,
    "algorithm": "ECDSAP256SHA256",
    "key_tag": 12345,
    "validation_status": "secure",
    "validated_by_proxy": true,
    "validation_reason": "chain validated via delv",
    "ds_records": [
      "12345 13 2 1a2b3c4d5e6f"
    ],
    "dnskey_records": [
      "256 3 13 AbCdEfGhIjKlMnOp"
    ],
    "rrsig_present": true,
    "resolver": "127.0.0.1",
    "mismatch_detail": {
      "checked": true,
      "mismatch_detected": false,
      "reason": "chain validated via delv",
      "ds_record_count": 1,
      "dnskey_record_count": 1,
      "rrsig_present": true,
      "validation_status": "secure",
      "resolver": "127.0.0.1"
    }
  },
  "caa": {
    "exists": true,
    "records": [
      {
        "flags": 0,
        "tag": "issue",
        "value": "pki.goog"
      }
    ],
    "issuers": [
      "pki.goog"
    ],
    "issue_wild": [],
    "iodef": "mailto:[email protected]"
  },
  "issuance_readiness": {
    "caa": {
      "exists": true,
      "records": [
        {
          "flags": 0,
          "tag": "issue",
          "value": "pki.goog"
        },
        {
          "flags": 0,
          "tag": "iodef",
          "value": "mailto:[email protected]"
        }
      ],
      "issue_issuers": [
        "pki.goog"
      ],
      "issuewild_issuers": [],
      "iodef": "mailto:[email protected]",
      "letsencrypt_allowed": false,
      "google_trust_services_allowed": true
    },
    "http01": {
      "challenge_path": "/.well-known/acme-challenge/domscan-probe-1713474000",
      "reachable": true,
      "ready": true,
      "status_code": 404,
      "final_url": "http://google.com/.well-known/acme-challenge/domscan-probe-1713474000",
      "redirects": 0,
      "error": null
    },
    "checked_at": "2026-04-18T21:00:00Z"
  },
  "authoritative_consistency": {
    "record_type": "SOA",
    "all_authoritative": true,
    "answer_sets_match": true,
    "inconsistent_nameservers": [],
    "consistent_serial": true,
    "serials": [
      {
        "host": "ns1.google.com",
        "udp_soa_serial": "2026041801",
        "tcp_soa_serial": "2026041801"
      }
    ],
    "reference_answers": [
      "google.com. 60 IN SOA ns1.google.com. dns-admin.google.com. 2026041801 900 900 1800 60"
    ]
  },
  "delegation_health": {
    "nameservers": [
      {
        "host": "ns1.google.com",
        "addresses": [
          "216.239.32.10"
        ],
        "in_bailiwick": false,
        "glue_required": false,
        "udp": {
          "authoritative": true,
          "status": "NOERROR",
          "query_ms": 14,
          "answer_count": 1,
          "answers": [
            "google.com. 60 IN SOA ns1.google.com. dns-admin.google.com. 2026041801 900 900 1800 60"
          ],
          "soa_serial": "2026041801",
          "truncated": false,
          "error": null
        },
        "tcp": {
          "authoritative": true,
          "status": "NOERROR",
          "query_ms": 18,
          "answer_count": 1,
          "answers": [
            "google.com. 60 IN SOA ns1.google.com. dns-admin.google.com. 2026041801 900 900 1800 60"
          ],
          "soa_serial": "2026041801",
          "truncated": false,
          "error": null
        },
        "lame": false,
        "issues": []
      }
    ],
    "in_bailiwick_nameservers": [],
    "glue_required_count": 0,
    "all_in_bailiwick_resolve": true,
    "missing_addresses": [],
    "lame_nameservers": []
  },
  "dns_transport": {
    "udp_working": true,
    "tcp_working": true,
    "tcp_supported_nameservers": [
      "ns1.google.com"
    ],
    "tcp_failed_nameservers": [],
    "truncation_tested": true,
    "truncation_nameserver": "ns1.google.com",
    "truncation_record_type": "DNSKEY",
    "truncation_observed": false,
    "tcp_fallback_ready": null
  },
  "nameserver_drift": {
    "checked": true,
    "drift_detected": false,
    "public_nameservers": [
      "ns1.google.com"
    ],
    "authoritative_nameservers": [
      "ns1.google.com"
    ],
    "missing_from_authority": [],
    "extra_at_authority": [],
    "inconsistent_nameservers": [],
    "serial_mismatch_detected": false
  },
  "mta_sts": {
    "exists": true,
    "record": "v=STSv1; id=2024010101Z",
    "valid": true,
    "policy_id": "2024010101Z",
    "policy_fetch_ok": true,
    "policy_http_status": 200,
    "mode": "enforce",
    "max_age": 86400,
    "mx_hosts": [
      "*.google.com"
    ],
    "mx_records": [
      "aspmx.l.google.com",
      "alt1.aspmx.l.google.com"
    ],
    "policy_matches_mx": true,
    "uncovered_mx": [],
    "errors": []
  },
  "tls_rpt": {
    "exists": true,
    "record": "v=TLSRPTv1; rua=mailto:[email protected]",
    "valid": true,
    "rua": [
      "mailto:[email protected]"
    ],
    "errors": []
  },
  "resolver_latency": {
    "record_type": "MX",
    "resolvers": [
      {
        "resolver": "1.1.1.1",
        "label": "Cloudflare",
        "query_ms": 22,
        "status": "NOERROR",
        "answer_count": 5,
        "answers": [
          "aspmx.l.google.com"
        ],
        "server": "1.1.1.1#53",
        "error": null
      },
      {
        "resolver": "8.8.8.8",
        "label": "Google Public DNS",
        "query_ms": 3,
        "status": "NOERROR",
        "answer_count": 5,
        "answers": [
          "aspmx.l.google.com"
        ],
        "server": "8.8.8.8#53",
        "error": null
      }
    ],
    "min_ms": 3,
    "max_ms": 22,
    "avg_ms": 12.5
  },
  "zone_transfer": {
    "exposed": false,
    "nameservers": [
      {
        "host": "ns1.google.com",
        "exposed": false,
        "query_ms": 18,
        "records_returned": 0,
        "soa_seen": false,
        "reason": "transfer failed",
        "sample_records": []
      }
    ]
  },
  "blacklist": {
    "domain": "google.com",
    "listed": false,
    "threat_level": "none",
    "check_type": "domain",
    "checked_at": "2026-04-18T21:00:00Z"
  },
  "edge_summary": {
    "relay_configured": true,
    "evidence_sources": [
      "dnssec_validate",
      "axfr_check",
      "dns_authority_health",
      "dns_latency",
      "issuance_readiness",
      "mail_policies",
      "bimi_audit",
      "spf_walk"
    ],
    "secure_dns_chain": true,
    "zone_transfer_exposed": false,
    "authoritative_consistency_ok": true,
    "nameserver_drift_detected": false,
    "lame_nameserver_count": 0,
    "tcp_fallback_ready": null,
    "avg_resolver_latency_ms": 12.5,
    "fastest_resolver": "Google Public DNS",
    "slowest_resolver": "Cloudflare",
    "issuance_http01_ready": true,
    "caa_restricts_issuers": true,
    "bimi_vmc_valid": true,
    "mta_sts_enforced": true,
    "tls_rpt_configured": true,
    "spf_lookup_limit_exceeded": false
  },
  "recommendations": [],
  "checked_at": "2026-04-18T21:00:00Z",
  "check_duration_ms": 312
}

Vanliga frågor

Vad är SPF, DKIM och DMARC?

SPF anger vilka servrar som får skicka e-post för din domän. DKIM lägger till en digital signatur i e-postmeddelanden. DMARC talar om för mottagande servrar vad de ska göra med meddelanden som inte klarar SPF-/DKIM-kontroller. Tillsammans förhindrar de förfalskning av e-post.

Varför är DNS-säkerhet viktigt?

Rätt DNS-säkerhet förhindrar förfalskning av e-post (nätfiskeattacker där angriparen utger sig för att vara du), förbättrar e-postleveransen och skyddar ditt varumärkes anseende.

Vad är ett bra säkerhetsbetyg?

Ett betyg på 85 eller högre (A eller A+) visar utmärkt säkerhet. 70–84 (B) är bra. Under 70 visar att det finns betydande utrymme för förbättring.

Hur förbättrar jag mitt DNS-säkerhetsbetyg?

Vanliga förbättringar är att lägga till SPF-poster med -all, konfigurera DKIM-signering, införa DMARC med karantäns- eller avvisningspolicy, aktivera DNSSEC och lägga till CAA-poster.

Relaterade verktyg och resurser

HTTP-statuskoder

Vi dokumenterar de HTTP-statuskoder som din klient bör hantera så att du kan skilja mellan lyckade svar, autentiseringsproblem, krediter, hastighetsgränser, saknade data och upstream-fel.

OK 200

Begäran lyckades

Felaktig begäran 400

Ogiltiga parametrar

Obehörig 401

API-nyckel eller session saknas eller är ogiltig.

Betalning krävs 402

Det finns inte tillräckligt med krediter för att köra denna begäran.

För många begäranden 429

Hastighetsgränsen överskriden

Analysera DNS-säkerheten kostnadsfritt