{"openapi":"3.0.3","info":{"title":"Webhook Signature Vault API","version":"1.0.0","description":"Verify webhook HMAC signatures from 12+ platforms in one API call."},"servers":[{"url":"https://api.lazy-mac.com/webhook-signature-vault"}],"paths":{"/":{"get":{"summary":"API info","operationId":"getInfo","responses":{"200":{"description":"info"}}}},"/health":{"get":{"summary":"Health check","operationId":"healthCheck","responses":{"200":{"description":"ok"}}}},"/version":{"get":{"summary":"Version","operationId":"getVersion","responses":{"200":{"description":"version"}}}},"/platforms":{"get":{"summary":"List supported platforms","operationId":"listPlatforms","responses":{"200":{"description":"platforms"}}}},"/verify":{"post":{"summary":"Verify a webhook signature","operationId":"verifySignature","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["platform"],"properties":{"platform":{"type":"string","description":"stripe | github | shopify | slack | twilio | sendgrid | lemonsqueezy | paypal | linear | notion | vercel | cloudflare | generic"},"secret":{"type":"string","description":"shared HMAC secret (or static token for cloudflare)"},"payload":{"type":"string","description":"raw request body as a string"},"signature":{"type":"string","description":"signature header value"},"timestamp":{"type":"string","description":"required for slack, sendgrid"},"url":{"type":"string","description":"required for twilio"},"content_type":{"type":"string","description":"twilio: 'application/x-www-form-urlencoded' or 'application/json'"},"public_key":{"type":"string","description":"sendgrid: ECDSA P-256 public key in PEM"},"mode":{"type":"string","description":"paypal: 'hmac' for HMAC-SHA256 fallback"},"algo":{"type":"string","description":"generic: SHA-1 | SHA-256 | SHA-384 | SHA-512"},"encoding":{"type":"string","description":"generic: hex | base64"}}}}}},"responses":{"200":{"description":"verification result"}}}}}}