DevToolsmith

HTTP 207 Multi-Status

HTTP 207 Multi-Status returns separate status codes for multiple resources in one XML response (WebDAV). The request was received, understood and accepted.

Class
2xx Success
Standard
RFC 4918
Cacheable by default
No
Safe to retry
Not applicable: this isn’t an error
Go constant
http.StatusMultiStatus

What HTTP 207 means

Used by WebDAV when one request affects several resources, such as copying a folder. The body is an XML document with a status for each resource, so the overall request can partly succeed. Some REST APIs borrow 207 for batch endpoints, with a JSON body instead.

Retrying

Not applicable: this isn’t an error.

Example response

HTTP/1.1 207 Multi-Status
Date: Wed, 21 Oct 2026 10:30:00 GMT
Content-Type: application/json

How to return 207

Node.js (Express)
res.status(207).json(result);
Python (FastAPI)
@app.post("/items", status_code=207)
def create_item(item: Item):
    return item
Go (net/http)
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusMultiStatus)
json.NewEncoder(w).Encode(result)

Related status codes

Other 2xx status codes

200 OK · 201 Created · 202 Accepted · 203 Non-Authoritative Information · 204 No Content · 205 Reset Content · 206 Partial Content

See the full list of HTTP status codes.

Sources

Spotted a mistake? Email hello@devtoolsmith.com and we’ll fix it.

Frequently asked questions

What does HTTP 207 Multi-Status mean?

HTTP 207 Multi-Status returns separate status codes for multiple resources in one XML response (WebDAV). Used by WebDAV when one request affects several resources, such as copying a folder. The body is an XML document with a status for each resource, so the overall request can partly succeed. Some REST APIs borrow 207 for batch endpoints, with a JSON body instead.