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
res.status(207).json(result);
@app.post("/items", status_code=207)
def create_item(item: Item):
return item
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusMultiStatus)
json.NewEncoder(w).Encode(result)
Related status codes
- 200 OK : The request succeeded and the response contains the result.
- 422 Unprocessable Content : The request is well-formed, but its contents fail validation.
- 423 Locked : The resource is locked (WebDAV).
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.