Multi-Status
Conveys information about multiple resources, for situations where multiple status codes might be appropriate.
What it means
The HTTP 207 Multi-Status response code provides status for multiple independent operations. It is an extension used in WebDAV.
The default response body is an XML message containing a `multistatus` element, which in turn contains a series of `response` elements detailing the outcome of each individual operation.
How it works
- 1The client sends a batch request (like WebDAV PROPFIND).
- 2The server processes 10 items. 8 succeed, 2 fail.
- 3The server cannot return a simple 200 or 500. Instead, it returns a 207.
- 4The XML (or JSON in some modern APIs) body lists each item and its individual status code (e.g., item 1 got 200, item 2 got 403).
Why you're seeing this
- • A batch operation was processed.
How to fix it
- • Clients must parse the response body to determine if the specific item they care about actually succeeded.
Framework Implementations
Express.js
app.post('/bulk-upload', (req, res) => {
const results = processBulk(req.body);
res.status(207).json({ responses: results });
});Real-Life Scenarios
Use this for bulk or batch operations in REST APIs where partial success is possible, and you need to inform the client exactly which items succeeded and which failed.
Bulk Email Sending
An API request to send 100 emails. 99 are sent, but 1 fails due to a malformed address. The server returns 207, listing the 99 success IDs and the 1 error.
HTTP Transaction
1. Client Request
PROPFIND /docs HTTP/1.1 Host: webdav.example.com
2. Server Response
HTTP/1.1 207 Multi-Status
Content-Type: application/xml
<?xml version="1.0" encoding="utf-8" ?>
<D:multistatus xmlns:D="DAV:">
<D:response>
<D:href>/docs/file1.txt</D:href>
<D:status>HTTP/1.1 200 OK</D:status>
</D:response>
<D:response>
<D:href>/docs/secret.txt</D:href>
<D:status>HTTP/1.1 403 Forbidden</D:status>
</D:response>
</D:multistatus>SEO Implications
None. Batch API operations are not crawled.