
HTTP 207 Multi-Status means the server processed a request that contained multiple sub-requests, and the response body holds an individual status for each one. The body is by default an XML document that can contain a number of separate response codes, depending on how many sub-requests were made. It belongs to the 2xx family, indicating the overall request was received and processed.
A server returns 207 when a single HTTP request touches multiple resources and each resource may have a different outcome. This is most common in WebDAV operations — such as moving or deleting a collection of files — and in REST API batch endpoints where several records are created, updated, or deleted in one call. The 207 tells the client to inspect the body for per-resource results rather than treating the whole operation as uniformly successful or failed.
Not necessarily. Although 207 is in the 2xx range, it signals that the server processed the request — not that every sub-operation succeeded. Individual sub-requests inside the response body can carry any status code, including 400, 404, 409, or 500. You must parse the response body to determine which operations succeeded and which failed.
HTTP 200 OK indicates that a single, uniform request completed successfully. HTTP 207 Multi-Status is used when one request triggers multiple sub-operations that can each have a different outcome. In short, 200 means "everything succeeded," while 207 means "look inside the body — results vary per sub-request."
By default the body is an XML document with a multistatus root element, as defined in IETF RFC 4918. Each child element represents one sub-request and carries its own status code, resource URL, and any relevant message. Modern REST APIs sometimes use JSON instead, but the principle is the same: one aggregate block of individual status codes, one per sub-operation.
HTTP 207 originated with WebDAV, where it handles operations on collections of resources. However, it is increasingly adopted in modern REST APIs for any batch operation — such as bulk creates, updates, or deletes — where individual items in the batch can succeed or fail independently. If your API needs to report mixed outcomes for a set of resources in a single request, 207 is the appropriate status code to use.