{"slug":"api-zfinia-com-x402-v1-kubernetes-manifest-contract-audit-3ad5b7","title":"Audit Kubernetes manifests against a contract","host":"api.zfinia.com","method":"POST","resource":"https://api.zfinia.com/x402/v1/kubernetes-manifest-contract-audit","category":"image","description":"Audit Kubernetes manifests against a contract. Reports a missing memory limit, where one container can take down the node it shares, a missing readiness probe, where traffic arrives before the container is ready, an unpinned image tag, a privileged container, added capabilities, a secret written lit","price_listed":0.15,"price_asked":0.15,"state":"answering","state_label":"Answering","checks_7d":1,"answered_7d":1,"latency_ms_median":2478,"reported_calls_30d":1,"reported_payers_30d":1,"networks":["eip155:8453"],"badge":"unverified","paid_checks_7d":0,"paid_ok_7d":0,"example_input":{"body":{"contract":{"require_non_root":true,"require_replicas":true,"required_labels":["app","team"]},"resources":[{"apiVersion":"apps/v1","kind":"Deployment","metadata":{"labels":{"app":"orders-api"},"name":"orders-api"},"spec":{"template":{"spec":{"containers":[{"env":[{"name":"DATABASE_PASSWORD","value":"not-a-real-password"},{"name":"LOG_LEVEL","value":"info"}],"image":"ghcr.io/example/orders-api:latest","name":"api","resources":{"requests":{"cpu":"100m"}}}]}}}},{"apiVersion":"batch/v1","kind":"CronJob","metadata":{"labels":{"app":"orders-api","team":"payments"},"name":"nightly-reconcile"},"spec":{"jobTemplate":{"spec":{"template":{"spec":{"containers":[{"image":"ghcr.io/example/reconcile@sha256:1111111111111111111111111111111111111111111111111111111111111111","name":"reconcile","resources":{"limits":{"cpu":"500m","memory":"512Mi"}},"securityContext":{"runAsNonRoot":true}}]}}}}}},{"apiVersion":"v1","kind":"Service","metadata":{"name":"orders-api"},"spec":{"ports":[{"port":80}]}}]},"bodyType":"json","method":"POST","type":"http"},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"additionalProperties":false,"properties":{"contract":{"additionalProperties":false,"properties":{"forbid_latest_tag":{"type":"boolean"},"forbid_privileged":{"type":"boolean"},"require_non_root":{"type":"boolean"},"require_probes":{"type":"boolean"},"require_replicas":{"type":"boolean"},"require_resource_limits":{"type":"boolean"},"required_labels":{"items":{"maxLength":128,"type":"string"},"maxItems":50,"minItems":1,"type":"array"}},"type":"object"},"resources":{"items":{"type":"object"},"maxItems":2000,"minItems":1,"type":"array"}},"required":["resources"],"type":"object"},"bodyType":{"enum":["json","form-data","text"],"type":"string"},"method":{"enum":["POST"],"type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"properties":{"example":{"type":"object"},"type":{"type":"string"}},"required":["type"],"type":"object"}},"required":["input"],"type":"object"},"history":[{"day":"2026-10-04","reachable":true,"status":402,"valid_402":true,"asked_usdc":0.15,"price_match":true,"latency_ms":2478,"error":null}],"description_full":"Audit Kubernetes manifests against a contract. Reports a missing memory limit, where one container can take down the node it shares, a missing readiness probe, where traffic arrives before the container is ready, an unpinned image tag, a privileged container, added capabilities, a secret written literally into an env value rather than a valueFrom reference, and missing required labels. A CronJob’s nested pod template is read correctly rather than reported as having no containers.","last_updated":"2026-10-04T08:04:10.141Z","schemes":["exact"]}