# Security Headers Analyzer

> Security Headers Analyzer is a paid API for AI agents from netintel-production-440c.up.railway.app, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-11).

Fetches a URL and grades its HTTP security response headers (CSP, HSTS, X-Frame-Options, etc.) with an A–F overall score and detected anti-patterns.

## Facts

- Endpoint: GET https://netintel-production-440c.up.railway.app/security-headers/analyze?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/netintel-production-440c-up-railway-app-490353f8
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_N6sYjUSYQGhftpYzra15U

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability netintel-production-440c-up-railway-app-490353f8
```

Example prompt: Can you audit the HTTP security headers for https://mycompany.com and tell me what grade it gets, which critical headers are missing, and any anti-patterns detected?

## When to prefer this

Use this endpoint when you need a structured, graded audit of a website's HTTP security response headers — especially when you need to check all 10 major security headers at once, detect anti-patterns, and receive an overall A–F grade. Prefer this over manual header inspection or generic HTTP probing tools when you want actionable security feedback for a web application or domain.

## Known failure modes

- Target URL unreachable or times out — returns error in errors array
- Invalid or malformed URL provided — schema validation failure
- Target returns non-HTTP response — parsing error
- Rate limiting or network errors from the target host
- Missing required 'target' query parameter — request rejected

## How this service works

Fetches a URL and evaluates 10 security-critical response headers (CSP, HSTS, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy, X-XSS-Protection, CORP, COEP, COOP), detects anti-patterns, and returns an overall security grade (A–F).

## Output

Returns a JSON object with the target URL, an overall letter grade (A–F), a numeric score, per-header pass/fail results for all 10 security headers (CSP, HSTS, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy, X-XSS-Protection, CORP, COEP, COOP), arrays of warnings, errors, and score deductions, plus a timestamp and service metadata.

## Example request

```json
{
 "input": {
  "type": "http",
  "method": "GET",
  "queryParams": {
   "target": "https://www.google.com"
  }
 }
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "target"
     ],
     "properties": {
      "target": {
       "type": "string",
       "description": "URL or domain to audit security headers for (e.g. https://example.com)"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "meta": {
       "type": "object"
      },
      "grade": {
       "type": "string"
      },
      "score": {
       "type": "number"
      },
      "errors": {
       "type": "array"
      },
      "target": {
       "type": "string"
      },
      "results": {
       "type": "object"
      },
      "service": {
       "type": "string"
      },
      "warnings": {
       "type": "array"
      },
      "timestamp": {
       "type": "string"
      },
      "deductions": {
       "type": "array"
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "meta": {
   "duration_ms": 312
  },
  "grade": "B",
  "score": 78,
  "errors": [],
  "target": "https://example.com",
  "results": {
   "headers": {
    "referrer-policy": {
     "reason": "Referrer-Policy is set to strict-origin-when-cross-origin",
     "status": "pass",
     "present": true,
     "raw_value": "strict-origin-when-cross-origin"
    },
    "x-frame-options": {
     "reason": "X-Frame-Options is set to DENY",
     "status": "pass",
     "present": true,
     "raw_value": "DENY"
    },
    "x-xss-protection": {
     "reason": "X-XSS-Protection not set — modern browsers use CSP instead",
     "status": "info",
     "present": false,
     "raw_value": null
    },
    "permissions-policy": {
     "reason": "Permissions-Policy not set — browser features not restricted",
     "status": "warn",
     "present": false,
     "raw_value": null
    },
    "x-content-type-options": {
     "reason": "X-Content-Type-Options is set to nosniff",
     "status": "pass",
     "present": true,
     "raw_value": "nosniff"
    },
    "content-security-policy": {
     "reason": "Content-Security-Policy is set with a strong policy",
     "status": "pass",
     "present": true,
     "raw_value": "default-src 'self'"
    },
    "strict-transport-security": {
     "reason": "HSTS enabled with max-age=31536000",
     "status": "pass",
     "present": true,
     "raw_value": "max-age=31536000; includeSubDomains"
    },
    "cross-origin-opener-policy": {
     "reason": "Cross-Origin-Opener-Policy not set",
     "status": "info",
     "present": false,
     "raw_value": null
    },
    "cross-origin-embedder-policy": {
     "reason": "Cross-Origin-Embedder-Policy not set",
     "status": "info",
     "present": false,
     "raw_value": null
    },
    "cross-origin-resource-policy": {
     "reason": "Cross-Origin-Resource-Policy not set",
     "status": "info",
     "present": false,
     "raw_value": null
    }
   },
   "summary": {
    "fail": 0,
    "info": 4,
    "pass": 6,
    "warn": 0
   },
   "final_url": "https://example.com/",
   "status_code": 200,
   "content_type": "text/html; charset=utf-8",
   "anti_patterns": [
    {
     "header": "x-powered-by",
     "reason": "Information leakage — reveals server framework",
     "severity": "warn",
     "raw_value": "Express"
    }
   ]
  },
  "service": "security-headers",
  "warnings": [],
  "timestamp": "2025-01-15T12:00:00.000Z",
  "deductions": [
   {
    "points": -5,
    "reas
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/netintel-production-440c-up-railway-app-490353f8/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from netintel-production-440c.up.railway.app](https://www.zero.xyz/host/netintel-production-440c.up.railway.app/llms.txt)
