The quickest REST API health check example is: curl http://127.0.0.1:8080/health. It sends a GET request to a local service on port 8080 and displays the health endpoint response.
curl http://127.0.0.1:8080/health Expected healthy result: HTTP status: 200 Body: OK
The official curl manual documents URL-based HTTP requests and response-output options. The command proves that something listening on the local loopback address can answer that route. It does not prove that DNS, TLS, a public gateway, a load balancer, every dependency, or every customer transaction is healthy.
What Is an API Health Check?
An API health check is a lightweight request that helps a machine or operator decide whether an API process is alive, ready for traffic, still starting, or unable to reach an essential dependency. A health check API endpoint is the route that exposes that decision.
The phrase “we can start with just adding a REST endpoint” “current state of the system” Rockset represents a practical search intent: teams often want to begin with a simple endpoint that exposes the current state of the system. It should not be treated as a verified quotation from Rockset. The correct design question is: which state should this endpoint represent, and which automated action will consume it?
Red Hat’s current Quay documentation describes health checks as a way to assess functionality and understand the current state for troubleshooting. That same principle applies broadly: the API health endpoint should represent a clearly defined condition rather than an undefined promise that “everything is fine.”
What a health endpoint can prove
- The process can receive and complete a small HTTP request.
- The instance is ready to accept new traffic.
- Startup initialization has completed.
- A carefully selected required dependency is currently available.
- A load balancer or orchestrator should keep or remove the instance from service.
What it cannot prove by itself
- Every customer workflow succeeds.
- Authorization and tenant isolation are correct.
- Responses do not expose sensitive data.
- The API is free from abuse, scraping, BOLA, replay, or business-logic attacks.
- Public DNS, certificates, CDN, gateway, and routing work from every region.
API Health Check Endpoint Examples
The examples below intentionally include the exact command patterns people search for. Replace ports and paths only after confirming the application’s real configuration.
Core curl examples
Standard local health endpoint
curl http://127.0.0.1:8080/health
Best first check when the service listens locally on port 8080 and exposes /health.
Cloud-native healthz route
curl http://127.0.0.1:8080/healthz
Useful when the service follows a /healthz naming convention.
API-prefixed health route
curl http://127.0.0.1:8080/api/health
Useful when all API routes are grouped beneath an /api prefix.
Localhost API-prefixed route
curl http://localhost:8080/api/health
Equivalent in many local environments, although hostname resolution and IPv4 or IPv6 behavior can differ.
Alternate local application port
curl http://localhost:8108/health
A generic example for a service bound to port 8108; verify the real port before using it.
PowerShell REST request
Invoke-RestMethod http://localhost:3000/health
Microsoft documents Invoke-RestMethod for HTTP and HTTPS REST requests.
GET request notation
GET http://localhost:8080/api/health Equivalent curl request: curl http://localhost:8080/api/health
The phrase GET http://localhost:8080/api/health describes the HTTP method and URL. The curl command actually sends that GET request because GET is curl’s default method for a plain URL.
Useful curl output options
| Command | Purpose | Use case |
|---|---|---|
curl http://127.0.0.1:8080/health |
Displays the response body | Fast manual API health check |
curl -i http://127.0.0.1:8080/health |
Displays response headers and body | Verify HTTP status and cache headers |
curl -sS http://127.0.0.1:8080/health |
Hides progress but keeps errors | Scripts and container checks |
curl --max-time 2 http://127.0.0.1:8080/health |
Stops a slow request after two seconds | Bounded monitoring request |
curl -f http://127.0.0.1:8080/health |
Returns an error exit status for HTTP failures | Simple automation decisions |
Health Endpoint Naming Patterns
| Pattern | Typical meaning | Recommendation |
|---|---|---|
/health |
General shallow health route | Simple and widely understood |
/healthz |
Cloud-native healthcheck endpoint convention | Fine when consistently documented |
/api/health |
Health route under the API namespace | Useful for API gateway routing |
/live or /livez |
Liveness decision | Use for restart decisions |
/ready or /readyz |
Readiness decision | Use for traffic routing |
/startup |
Initialization completion | Use for slow-starting services |
/status |
Ambiguous health or diagnostic route | Document exact semantics |
/diagnostics |
Detailed component information | Restrict to authorized operators |
Kubernetes currently exposes healthz, livez, and readyz for the API server, and notes that healthz is deprecated there in favor of the more specific endpoints. This does not mean every application must copy Kubernetes exactly; it demonstrates why explicit semantics are more useful than one overloaded route.
REST API Health Check Best Practices
- Answer one operational question. Decide whether the endpoint represents liveness, readiness, startup, or diagnostics.
- Keep the request cheap. Avoid large queries, remote fan-out, file scans, expensive model calls, and full business transactions.
- Return quickly. Use bounded dependency timeouts and make the endpoint higher priority than ordinary work when practical.
- Use meaningful status codes. Return a successful status when the condition is satisfied and a failure status when it is not.
- Separate public and detailed responses. Public health should disclose almost nothing; component diagnostics should be protected.
- Avoid stale caching. Health consumers need current state, not an old successful response.
- Require repeated failure. A single timeout should not immediately restart a fleet or create an incident.
- Test from multiple layers. Local, internal, gateway, load-balancer, and external checks answer different questions.
- Monitor real traffic too. Health endpoints do not replace latency, error, transaction, and security telemetry.
- Protect the route from abuse. A health endpoint must not become a denial-of-service amplifier.
API health endpoint best practices
The strongest API health endpoint best practices are to keep the machine response small, define ownership, document the expected status, establish timeout and failure thresholds, verify the route through the actual production path, and correlate the result with application metrics.
Health check endpoint best practices
Health check endpoint best practices also include protecting detailed component information, using separate management networks or authentication where necessary, and avoiding credentials, software versions, internal hostnames, stack traces, and customer data in responses.
Health endpoint monitoring pattern
Local liveness check → Can the process make progress? Instance readiness check → Should this instance receive new traffic? Internal service check → Can the service be reached through the private route? Public synthetic check → Do DNS, TLS, edge, gateway, routing, and the API endpoint work? Passive runtime monitoring → Are real users seeing latency, errors, abuse, or data exposure?
OWASP’s denial-of-service guidance recommends identifying bottlenecks and testing controls across layers. A healthcheck endpoint should therefore be deliberately low-cost and isolated from expensive work.
Liveness, Readiness, Startup, and Dependency Health
Kubernetes documentation separates liveness, readiness, and startup probes. The distinction is useful even outside Kubernetes because each result should trigger a different action.
| Health type | Question | Typical failure action | Dependency depth |
|---|---|---|---|
| Liveness | Can the process continue making progress? | Restart after repeated failure | Very shallow |
| Readiness | Can the instance safely accept traffic? | Remove from routing | Only critical dependencies |
| Startup | Has initialization completed? | Allow more startup time | Initialization state |
| Dependency health | Is a selected database, queue, cache, or provider available? | Alert, degrade, or mark not ready | Controlled and bounded |
| Diagnostic health | Which component is degraded and why? | Operator investigation | Detailed but protected |
See Ammune’s guide to active and passive health monitoring methods for a wider monitoring comparison.
API Health Endpoint Response Examples
Minimal healthy response
HTTP/1.1 200 OK Cache-Control: no-store Content-Type: text/plain OK
Minimal not-ready response
HTTP/1.1 503 Service Unavailable Cache-Control: no-store Content-Type: text/plain NOT READY
Protected structured response
{
"status": "degraded",
"checks": {
"database": "up",
"queue": "delayed",
"model_provider": "up"
},
"observed_at": "2026-07-30T16:00:00Z"
}RFC 9110 defines HTTP semantics and status codes including successful and service-unavailable responses. RFC 9111 defines HTTP caching behavior; health responses commonly use a no-store policy so intermediaries do not hide a new failure behind an old success.
Red Hat Quay documents health endpoints that return 200 when healthy and 503 when a deployment problem is detected, providing a current product example of status-driven health behavior.
Current Platform Health Endpoint Examples
n8n health check endpoint
Current n8n documentation lists three monitoring endpoints: /healthz, /healthz/readiness, and /metrics. The shallow healthz route and readiness route answer different questions. n8n also documents configuration for the health endpoint path in queue-mode deployments.
curl http://127.0.0.1:5678/healthz curl http://127.0.0.1:5678/healthz/readiness
Micronaut health endpoint
The current Micronaut guide explains how to expose a health endpoint through the Micronaut Management feature. Production teams should verify whether details are exposed publicly, whether a separate management port is used, and which indicators affect readiness.
curl http://127.0.0.1:8080/health
Skyvern API health endpoint /api/v1/health
The keyword skyvern api health endpoint /api/v1/health is useful as a search phrase, but the route must be verified rather than assumed. Current Skyvern repository testing guidance verifies backend API reachability through an API request. A current Skyvern issue references an internal auth-status path used by the UI, which demonstrates that deployment diagnostics can differ from a generic /api/v1/health expectation.
Kubernetes API health endpoints
The Kubernetes API server provides healthz, livez, and readyz, and recommends relying on HTTP status for machine checks. For ordinary workloads, Kubernetes supports HTTP, TCP, command, and gRPC probe mechanisms.
AI API Health Check and Readiness Probe Design
An AI API health check should distinguish whether the local API process is alive from whether the full AI workflow is ready. A service may be running while its model configuration, worker pool, queue, vector database, GPU capacity, inference server, or external provider is unavailable.
AI liveness
Confirm the API process, event loop, worker heartbeat, and internal state can progress. Avoid making a paid or slow model request.
AI readiness
Confirm required configuration, worker capacity, queue state, model route, database, and local provider connectivity using bounded checks or background state.
Provider diagnostics
Expose detailed model-provider, credential, quota, and latency information only to authorized operators.
Business synthetic check
Run a small controlled end-to-end AI task separately and less frequently to validate the complete workflow.
AI API readiness probe example
GET /ready Ready when: - API process is initialized - worker pool has capacity - required queue is reachable - selected model route is configured - required data store is available Not required on every probe: - a full paid model generation - a large vector search - document processing - third-party browser automation
This pattern reduces false failures and prevents the readiness endpoint from becoming an expensive workload itself.
Operating System, Container, and Service Examples
| Environment | Example | What it assesses |
|---|---|---|
| Linux or macOS | curl http://127.0.0.1:8080/health |
Local HTTP endpoint response |
| Windows PowerShell | Invoke-RestMethod http://localhost:3000/health |
Local REST response and structured body |
| Docker | docker exec my-api curl -f http://127.0.0.1:8080/health |
Health from inside the container |
| Podman | podman exec my-api curl -f http://127.0.0.1:8080/healthz |
Container-local healthz route |
| Kubernetes | kubectl get --raw='/readyz?verbose' |
Kubernetes API server readiness details |
| API gateway path | curl https://api.example.test/api/health |
DNS, TLS, gateway, route, and endpoint |
| Alternate port | curl http://localhost:8108/health |
Only valid when the service actually uses port 8108 |
Docker’s current Dockerfile reference documents the HEALTHCHECK instruction for determining whether a container is still working. Container state and application readiness are related but not identical, so the command should query the real application route.
Best Way to Monitor Endpoint Health
The best way to monitor endpoint health is not one periodic curl command. It is a layered health endpoint monitoring pattern that combines active checks, passive runtime observation, infrastructure telemetry, dependency metrics, and business outcomes.
| Monitoring layer | Example | Blind spot if used alone |
|---|---|---|
| Local active check | curl http://127.0.0.1:8080/health |
Does not test public routing |
| Load-balancer check | Repeated readiness request from the routing tier | May not represent real customer regions |
| External synthetic check | DNS, TLS, gateway, route, status, and latency | Tests a scripted path, not all traffic |
| Passive API monitoring | Real requests, responses, identities, latency, errors, and abuse | Needs sufficient traffic and context |
| Business transaction | Login, checkout, payment, search, or workflow completion | More expensive and slower to run |
| Dependency telemetry | Database, cache, queue, model, and third-party health | Does not prove the public API path |
Poor endpoint health visibility
Poor endpoint health visibility occurs when teams only know that a process returned 200, but cannot tell which routes are slow, which customers are failing, whether a gateway is blocking traffic, whether a dependency is saturated, or whether abusive traffic is consuming capacity.
How to assess endpoint health
- Availability: success rate and repeated failure.
- Latency: p50, p95, and p99 response time.
- Correctness: expected response shape and required fields.
- Readiness: instance acceptance of new traffic.
- Dependencies: database, cache, queue, identity, model, and partner services.
- Business result: completion of important customer journeys.
- Security: unusual identities, abuse, authorization failure, data leakage, and response anomalies.
OWASP logging guidance recommends telemetry that supports operations, security, investigation, and audit use cases. For broader architecture, see enterprise API monitoring best practices and centralized SIEM log forwarding formats.
Health Endpoint Security and Ammune Runtime Visibility
A health endpoint is part of the API attack surface. OWASP REST Security guidance recommends strong authentication and authorization, safe input handling, appropriate status codes, and controlled information exposure.
Health endpoint security controls
- Return minimal public information such as
OK,READY, orNOT READY. - Do not expose credentials, tokens, internal IPs, dependency URLs, software versions, stack traces, or customer data.
- Protect detailed diagnostics with network restrictions and authentication.
- Keep the endpoint cheap and rate controlled so it cannot amplify denial-of-service activity.
- Log state changes, repeated failure, unusual sources, and latency increases without recording noisy successful probes forever.
- Monitor the same API beyond the check endpoint to detect abuse and real customer impact.
Related Ammune guidance includes REST API endpoint security best practices, internal API security best practices, and the API runtime security protection platform.
How Ammune complements API health checks
Runtime API discovery
Identify the active endpoints, versions, methods, domains, and traffic paths that a single health route cannot represent.
Request and response visibility
Observe real request, response, status, latency, identity, parameter, payload, and sensitive-data context.
Behavior analytics
Detect abnormal endpoint use, automation, enumeration, replay, business-logic abuse, and distributed low-rate activity.
SIEM-ready evidence
Forward normalized API events with related identities, behavior, data, decisions, and operational context.
Ammune should complement—not replace—liveness, readiness, metrics, tracing, logs, infrastructure monitoring, and synthetic checks. Validate deployment mode, traffic visibility, throughput, latency, encryption architecture, alert quality, and enforcement through a proof of value.
Production API Health Check Checklist
| Requirement | Production question | Desired outcome |
|---|---|---|
| Purpose | Does this check endpoint answer one operational question? | Clear liveness, readiness, startup, or diagnostic meaning |
| Path | Is /health, /healthz, or /api/health consistently configured? |
Documented route across app, gateway, monitor, and runbook |
| Method | Can a simple GET request assess the condition? | No body, credentials, or side effects required |
| Performance | Is the health endpoint fast and inexpensive? | Bounded time and controlled dependency work |
| Status | Does the HTTP status match the operational decision? | Machines do not need to parse ambiguous prose |
| Caching | Could a stale healthy response hide a failure? | Current result with no-store behavior |
| Threshold | Can one slow response trigger restart or paging? | Repeated failure and recovery thresholds |
| Security | Does the response expose internal details? | Minimal public body and protected diagnostics |
| Coverage | Are local, internal, gateway, and external paths tested? | Each network layer has explicit evidence |
| Runtime | Do real traffic metrics complement the healthcheck endpoint? | Latency, errors, identities, business outcomes, and abuse visible |
| Ownership | Who changes thresholds, routes, and dependencies? | Named application, platform, SRE, and security owners |
| Documentation | Are examples such as curl http://127.0.0.1:8080/health current? |
Runbooks match deployed ports and paths |
Conclusion
A useful REST API health check endpoint begins with a small, predictable request such as curl http://127.0.0.1:8080/health. From there, separate liveness from readiness, choose a documented route, return meaningful status codes, prevent stale caching, use bounded dependency checks, protect diagnostics, and require repeated failure before disruptive action.
The best way to monitor endpoint health combines active checks with passive API traffic visibility, real latency and error telemetry, dependency metrics, customer-journey validation, and security monitoring. Ammune can add runtime API discovery, behavior analytics, request and response context, abuse detection, and SIEM-ready evidence beyond the green-or-red health result.
Frequently Asked Questions About API Health Checks
What is an API health check?
An API health check is a small request used to determine whether an application is alive, ready to receive traffic, or able to reach required dependencies. Kubernetes distinguishes liveness, readiness, and startup probes because each one drives a different operational decision.
What does curl http://127.0.0.1:8080/health do?
The command curl http://127.0.0.1:8080/health sends an HTTP GET request to a service listening on the local loopback address at port 8080 and path /health. The curl manual documents URL-based HTTP requests and output options.
Should I use /health, /healthz, or /api/health?
Any of the three can work if the route is documented and consistently configured. /health is simple, /healthz is common in cloud-native systems, and /api/health keeps the route under an API prefix. Kubernetes itself exposes healthz, livez, and readyz endpoints, while recommending the more specific livez and readyz endpoints for the API server.
What should a healthy API endpoint return?
A machine-oriented health endpoint should normally return a successful HTTP status when its condition is satisfied and a failure status when it is not. Kubernetes API health checks instruct machines to rely on the HTTP status code and use 200 for a healthy, live, or ready result.
What is the difference between liveness and readiness?
Liveness asks whether a process should be restarted. Readiness asks whether an instance should receive traffic. Kubernetes documents separate liveness, readiness, and startup probes so a temporarily unavailable dependency does not automatically trigger unnecessary restarts.
What is the n8n health check endpoint?
Current n8n documentation lists /healthz, /healthz/readiness, and /metrics for instance monitoring. The exact behavior depends on deployment mode and configuration, so teams should verify the current n8n version and topology.
What is the Micronaut health endpoint?
The current Micronaut guide explains how to enable the health endpoint with the Micronaut Management feature. Teams should confirm exposure, detail visibility, authentication, and management-port configuration before production use.
Does Skyvern use /api/v1/health?
The search phrase skyvern api health endpoint /api/v1/health should not be treated as proof of a stable public route. Current Skyvern repository testing guidance checks backend reachability through an API request, while current issue history references an internal auth-status route. Verify the route in the exact Skyvern release and deployment configuration.
How do I run an API health check from PowerShell?
Use Invoke-RestMethod http://localhost:3000/health for a local REST endpoint. Microsoft documents Invoke-RestMethod as a cmdlet for sending HTTP and HTTPS requests to REST services and converting structured responses.
What is the best way to monitor endpoint health?
The best approach combines a cheap active health request, passive observation of real traffic, latency and error metrics, dependency telemetry, business-transaction checks, and alerting based on repeated failures rather than one sample. OWASP recommends application logging that supports operations, security monitoring, and investigation.
What is an AI API readiness probe?
An AI API readiness probe should indicate whether the API can safely accept work without forcing every probe to call a model provider. It can evaluate locally maintained readiness state for model configuration, worker capacity, queues, vector stores, databases, and required credentials, while detailed dependency diagnostics remain protected.
Does a green health endpoint prove the API is secure?
No. A health endpoint answers an availability question, not whether authorization, data exposure, abuse, business logic, or response handling is safe. OWASP REST Security guidance covers authentication, authorization, input validation, status handling, and other controls beyond health checks.
Go beyond a single green API health check
Use clear health endpoints for routing and restart decisions, then add Ammune runtime API visibility to understand real requests, responses, identities, behavior, abuse, sensitive data, and customer impact.
