HTTPError.net

The fastest way to diagnose, understand, and fix any HTTP status code

451 Unavailable For Legal Reasons

Fault: Neither
TL;DR

Content blocked due to legal demands (censorship, DMCA).

The resource is unavailable due to legal reasons.

What This Error Means

The resource is unavailable due to legal reasons.

Content blocked due to legal demands (censorship, DMCA).

Common Causes

How to Fix It (For Visitors)

How to Fix It (For Developers/Admins)

Code Examples

Here's how to return a 451 status code in various programming languages:

Python (Flask)

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/endpoint')
def endpoint():
    return jsonify({"message": "Unavailable For Legal Reasons"}), 451

Node.js (Express)

const express = require('express');
const app = express();

app.get('/endpoint', (req, res) => {
    res.status(451).json({ message: 'Unavailable For Legal Reasons' });
});

PHP

<?php
http_response_code(451);
header('Content-Type: application/json');
echo json_encode(['message' => 'Unavailable For Legal Reasons']);
?>

Go

package main

import (
    "encoding/json"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("Content-Type", "application/json")
    w.WriteHeader(451)
    json.NewEncoder(w).Encode(map[string]string{
        "message": "Unavailable For Legal Reasons",
    })
}

Java (Spring Boot)

@GetMapping("/endpoint")
public ResponseEntity<Map<String, String>> endpoint() {
    Map<String, String> response = new HashMap<>();
    response.put("message", "Unavailable For Legal Reasons");
    return ResponseEntity.status(451).body(response);
}

Ruby (Sinatra)

get '/endpoint' do
    status 451
    json message: 'Unavailable For Legal Reasons'
end

Browser Compatibility

Browser Support Notes
Chrome✓ Full SupportAll versions
Firefox✓ Full SupportAll versions
Safari✓ Full SupportAll versions
Edge✓ Full SupportAll versions

Official Specification

This status code is defined in RFC 7725.

View on IANA HTTP Status Code Registry →