{ }HttpStatus.com

207 Multi-Status

The response reports the individual results of multiple independent operations, each with its own status, inside one WebDAV response body.

Defined in RFC 4918 §11.1

What 207 means

HTTP 207 Multi-Status is a WebDAV response used when a single request performs several independent operations that can each succeed or fail on their own, and a single top-level status code cannot capture that. A PROPFIND against a collection, a batch COPY or MOVE across multiple resources, or a DELETE of a folder tree can each partially succeed, so instead of picking one overall status, the server returns 207 with an XML body listing every affected resource and the specific status that applied to it. This gives the client a complete, per-resource picture in one round trip rather than one ambiguous top-level code.

The response body is structured as a multistatus element containing one response element per resource, each carrying its own href and status, plus optional properties depending on the originating method. Because the outer HTTP status is always 207 regardless of whether every inner operation succeeded, clients must parse the body to know the real outcome; a 207 that reports every inner status as 200 is effectively a full success, while one mixing 200s with 403s or 424s indicates a partial failure that needs individual handling.

Outside dedicated WebDAV servers, 207 rarely appears, though the same pattern, an envelope status covering an array of per-item results, shows up informally in many bulk REST APIs that choose a custom JSON shape instead of WebDAV's XML format. Client libraries that only inspect the top-level HTTP status without parsing the multistatus body will incorrectly treat a batch with partial failures as a complete success, since 207 itself does not indicate which, if any, individual operations failed.

Common causes

  • A WebDAV PROPFIND request returned properties for multiple resources in a collection, each potentially with a different per-resource status.
  • A batch COPY, MOVE, or DELETE operation partially succeeded, with some resources processed successfully and others failing.
  • A bulk operation against many resources needs to report per-item outcomes rather than one status for the whole request.
  • A client requested properties or actions on a deep collection where individual child resources have different permissions or states.

How to fix a 207

If you are the client (browser user or API caller)

  • Always parse the multistatus XML body to determine the real per-resource outcome; never treat the outer 207 status alone as full success.
  • Retry only the specific resources that reported a failing inner status instead of resubmitting the entire batch operation.
  • Log or surface which individual hrefs failed so users understand exactly what did not complete in a bulk operation.

If you run the server

  • Include an accurate status for every resource in the multistatus body, even ones that succeeded, so clients get a complete picture.
  • Use a consistent, well-formed multistatus XML structure so standard WebDAV clients can parse the response reliably.
  • Reserve 207 for genuinely multi-resource operations; return a normal single status code for requests that only ever affect one resource.

Example

PROPFIND /webdav/reports/ HTTP/1.1
Host: files.example.com
Depth: 1

HTTP/1.1 207 Multi-Status
Content-Type: application/xml

<multistatus xmlns="DAV:">
  <response>
    <href>/webdav/reports/q1.pdf</href>
    <propstat><status>HTTP/1.1 200 OK</status></propstat>
  </response>
  <response>
    <href>/webdav/reports/q2.pdf</href>
    <propstat><status>HTTP/1.1 403 Forbidden</status></propstat>
  </response>
</multistatus>
One resource in the collection returns a per-item 403 inside an overall 207.

Try it live

Our free status responder returns a real HTTP 207 you can point tests, monitors or a browser at.

GET https://mcp.httpstatus.com/status/207

Related status codes

Tools for debugging this