HTTP Status Checker

Check what HTTP status code any URL returns. See the response code and response time instantly.

Enter the full URL including https://

What Is an HTTP Status Code?

HTTP status codes are three-digit numbers returned by a web server in response to every HTTP request. They tell the client (browser, API consumer, monitoring tool) whether the request succeeded, was redirected, or encountered an error. Understanding these codes is fundamental for web development, API integration, and debugging production issues.

Status codes are grouped into five classes based on their first digit. 1xx codes are informational (rarely seen in practice). 2xx codes indicate success -- the request was received, understood, and processed. 3xx codes mean the client must take additional action, usually following a redirect. 4xx codes signal client errors -- the request was malformed, unauthorized, or targeted a non-existent resource. 5xx codes indicate server-side failures where the server could not fulfill a valid request.

This tool checks the HTTP status code of any URL in real time. Enter a URL above and we will send a request from our servers, reporting the exact status code, status text, and response time. This is useful for debugging API endpoints, verifying redirects, or confirming that a health check endpoint returns the expected response.

Common Use Cases

HTTP Status Code Reference

2xx Success

  • 200 OK -- Request succeeded
  • 201 Created -- Resource created
  • 204 No Content -- Success, empty body

4xx Client Errors

  • 400 Bad Request -- Malformed syntax
  • 401 Unauthorized -- Auth required
  • 403 Forbidden -- Access denied
  • 404 Not Found -- Resource missing
  • 429 Too Many Requests -- Rate limited

5xx Server Errors

  • 500 Internal Server Error
  • 502 Bad Gateway
  • 503 Service Unavailable
  • 504 Gateway Timeout

Learn more about specific error codes: 500, 502, 503, 504 | Full reference: HTTP Status Codes

How to Use This Tool

  1. 1. Enter a URL in the input field above. Include the full URL with the protocol (e.g., https://api.example.com/health). We add https:// automatically if omitted.
  2. 2. Click "Check Status" and we send an HTTP GET request from our servers to the URL. The request runs through Cloudflare's edge network.
  3. 3. Read the result. You will see the status code (e.g., 200, 404, 500), the status text, and the response time in milliseconds. The color coding helps you quickly identify success (green), client errors (amber), and server errors (red).

Check HTTP Status Codes Programmatically

cURL
# Get just the status code
curl -o /dev/null -s -w "%{http_code}" https://example.com

# Get status code with headers
curl -I -s https://example.com | head -1

# Get status code, response time, and redirect URL
curl -o /dev/null -s -w "Code: %{http_code}\nTime: %{time_total}s\nRedirect: %{redirect_url}\n" https://example.com
Python
import requests

response = requests.get('https://example.com')
print(f'Status: {response.status_code}')    # 200
print(f'Reason: {response.reason}')          # OK
print(f'OK: {response.ok}')                  # True (2xx)

# Check without following redirects
response = requests.get('https://example.com',
                        allow_redirects=False)
if response.status_code == 301:
    print(f'Redirects to: {response.headers["Location"]}')
JavaScript
// Browser / Node.js (fetch)
const response = await fetch('https://example.com');
console.log(response.status);     // 200
console.log(response.statusText); // "OK"
console.log(response.ok);         // true (2xx)

// Check without following redirects
const res = await fetch('https://example.com', {
  redirect: 'manual'
});
if (res.status === 301) {
  console.log('Redirects to:', res.headers.get('Location'));
}
Go
package main

import (
    "fmt"
    "net/http"
)

func main() {
    resp, err := http.Get("https://example.com")
    if err != nil {
        fmt.Println("Error:", err)
        return
    }
    defer resp.Body.Close()

    fmt.Println("Status:", resp.StatusCode)  // 200
    fmt.Println("Text:", resp.Status)        // "200 OK"
}

Frequently Asked Questions

What is an HTTP status code?
An HTTP status code is a three-digit number returned by a web server in response to a client request. It indicates whether the request was successful (2xx), redirected (3xx), a client error (4xx), or a server error (5xx). Every HTTP response includes a status code, and understanding them is essential for web development and API integration.
What is the difference between 401 and 403?
401 Unauthorized means the request lacks valid authentication credentials -- the client needs to log in or provide an API key. 403 Forbidden means the server knows who the client is but the client does not have permission to access the resource. Think of 401 as "who are you?" and 403 as "I know who you are, but you are not allowed."
What causes a 502 Bad Gateway error?
A 502 Bad Gateway error occurs when a server acting as a gateway or reverse proxy (such as Nginx or a load balancer) receives an invalid response from the upstream application server. Common causes include: the upstream application has crashed, the application process is not running, there is a network issue between the proxy and the application, or the application is returning malformed responses.
What is the difference between 301 and 302 redirects?
301 Moved Permanently tells browsers and search engines that the resource has permanently moved to a new URL. Browsers cache this redirect and search engines transfer SEO value to the new URL. 302 Found (temporary redirect) indicates the resource is temporarily at a different URL. Browsers do not cache it and search engines keep the original URL indexed. Use 301 for permanent URL changes and 302 for temporary situations like maintenance pages.
How can I monitor HTTP status codes automatically?
Use an uptime monitoring service like UptimeSignal. It checks your endpoints at regular intervals and alerts you when the status code changes or the endpoint returns an error. This is more reliable than manual checking and catches issues as soon as they happen. UptimeSignal supports checking every 1 minute on the Pro plan, with 25 free monitors available.

Monitor this endpoint automatically

Get alerted if the status code changes or the endpoint goes down.

Start monitoring free →

25 monitors free. No credit card required.

Related Developer Tools