What Is Status Code: 207 Multi-Status? The Bulk Operation Report

Learn what HTTP status code 207 Multi-Status means, why it’s used in WebDAV and APIs, and how it helps report multiple outcomes in one response. Discover examples, best practices, and how to test 207 with Apidog.

INEZA Felin-Michel

INEZA Felin-Michel

17 September 2025

What Is Status Code: 207 Multi-Status? The Bulk Operation Report

You're building an admin panel for a content management system. You need to delete 100 articles at once. You could send 100 separate DELETE requests, but that would be incredibly inefficient, slow, and hard to manage. What if you could send just one request to perform this bulk operation and get back a detailed report on the success or failure of each individual item?

This is the complex, powerful problem that the 207 Multi-Status HTTP status code is designed to solve.

In the world of web development and APIs, HTTP status codes are essential tools that help clients and servers communicate clearly. While many developers are familiar with common status codes like 200 OK or 404 Not Found, there are several niche codes designed for very specific scenarios that you might not have encountered yet. One of these is the 207 Multi-Status status code.

One such status code is 207 Multi-Status. Unlike the everyday codes, this one doesn’t appear everywhere but when it does, it’s incredibly powerful, especially in WebDAV (Web Distributed Authoring and Versioning) and APIs that need to report multiple results in a single response.

In this in-depth blog post, we will explore the 207 Multi-Status code from the ground up. We’ll cover its meaning, how it works, real-world use cases, and why it is particularly useful in certain API contexts such as WebDAV. And, to help you test and document APIs efficiently including those that use 207 Multi-Status make sure to download Apidog for free. If you want to simulate, mock, and test status codes like 207 Multi-Status, you don’t have to spin up a custom server. Instead, try Apidog. It’s an all-in-one API platform where you can design, document, and test APIs. With Apidog, you can create a mocked 207 response in seconds to see how your client handles it. And yes it’s free to download!

button

Now, let’s roll up our sleeves and explore what 207 Multi-Status really means, why it exists, and how you can use it effectively in your projects.

Where Does 207 Multi-Status Come From?

The 207 status code comes from the Web Distributed Authoring and Versioning protocol better known as WebDAV. WebDAV extends HTTP to allow clients to perform remote web content authoring operations.

In particular, WebDAV supports batch operations on collections (folders containing multiple files/resources), and these operations often have complex, per-resource response statuses. To communicate this complexity, 207 Multi-Status was introduced.

When performing actions like copying, moving, or deleting multiple files, a single HTTP status code isn’t enough. Some files may succeed, while others fail.

That’s where 207 Multi-Status comes in it allows granular reporting of each resource’s outcome within one response. The 207 status code was invented to provide a detailed account of the outcome of these bulk operations.

What Does HTTP 207 Multi-Status Actually Mean?

The 207 Multi-Status status code is a WebDAV-specific extension of HTTP. It indicates that the server is returning multiple status codes for different parts of a request. At its core, the HTTP 207 Multi-Status status code is a way for a server to return multiple status codes in a single HTTP response. Unlike typical HTTP codes which provide a single response status for a single request, 207 provides a separate status for multiple independent operations within the same response.

This is especially useful when dealing with operations on multiple resources at once, where the responses for individual items might differ (some might succeed, others might fail).

The 207 response usually contains an XML or JSON body detailing the status of each individual resource or operation, making it a multi-faceted response.

In simple terms: One request, many results.

A typical 207 response looks something like this:

HTTP/1.1 207 Multi-StatusContent-Type: application/xml; charset="utf-8"

<?xml version="1.0" encoding="utf-8"?>
<multistatus xmlns="DAV:">
  <response>
    <href>/files/report.pdf</href>
    <status>HTTP/1.1 200 OK</status>
  </response>
  <response>
    <href>/files/archive.zip</href>
    <status>HTTP/1.1 423 Locked</status>
  </response>
  <response>
    <href>/files/photo.jpg</href>
    <status>HTTP/1.1 404 Not Found</status>
  </response>
</multistatus>

This response tells us that a bulk operation on three files had three different outcomes:

  1. report.pdf was successfully processed (200 OK).
  2. archive.zip could not be processed because it's locked (423 Locked – a WebDAV-specific code).
  3. photo.jpg could not be found (404 Not Found).

In other words, instead of returning a single result like 200 OK, the server bundles multiple outcomes into one response. This is useful when the request targets multiple resources or when different operations succeed or fail differently.

Example:

The Anatomy of a 207 Response

The power and complexity of 207 lie in its response body, which is always in XML format.

This structure allows for an incredibly detailed and granular report.

A typical 207 Multi-Status response looks like this:

HTTP/1.1 207 Multi-Status
Content-Type: application/xml; charset="utf-8"

<multistatus xmlns="DAV:">
  <response>
    <href>/file1.txt</href>
    <status>HTTP/1.1 200 OK</status>
  </response>
  <response>
    <href>/file2.txt</href>
    <status>HTTP/1.1 403 Forbidden</status>
  </response>
</multistatus>

This means:

Notice how each resource has its own status. That’s the essence of 207.

How Does 207 Multi-Status Work?

When a client sends a single request that involves multiple resources say, a batch delete or batch update the server processes each individual operation separately. The 207 response aggregates these individual statuses and returns them as a consolidated report.

For example, if a client asks to delete three files and two were successfully deleted but one failed due to permissions, the server doesn’t just return a generic error or success. Instead, it sends a 207 Multi-Status response with detailed status information for each file.

The response body typically contains XML (or JSON in newer implementations) that looks like this:

This clearly tells the client which operations succeeded and which failed, enabling smarter error handling and responses.

Why Multi-Status Responses Are Needed

Without 207, here’s what would happen:

Or worse:

Both situations are ambiguous and inefficient. With 207, the server can clearly report:

All inside one structured XML or JSON body.

Why Is 207 Important?

The 207 Multi-Status status code is critical for APIs and systems that manage collections of resources. Here’s why:

Without 207, APIs would have to rely on multiple requests or complex workarounds to convey the status of multi-resource operations.

Key Use Cases for 207 Status Code

Where is 207 used most often?

Why Use 207 Multi-Status? The Benefits

The alternative to a 207 is much worse:

  1. The "All or Nothing" Approach: The server could fail the entire operation if any single item fails. This is a poor user experience why should one failed file prevent the deletion of 99 others?
  2. The "Silent Partial Failure" Approach: The server could return a generic 200 OK even if some items failed, leaving the client to figure out what worked and what didn't. This is unreliable and dangerous.
  3. The "100 Requests" Approach: The client could send 100 separate requests. This is terribly inefficient, overwhelming the server with network overhead, and it's difficult to manage atomicity.

The 207 provides a perfect middle ground:

Common Use Cases for 207 Multi-Status

Though most prominent in WebDAV, use cases extend into any API or system that performs batch operations:

If you’re designing an API that supports batch operations, considering the use of 207 Multi-Status can improve client-server communication.

Real-World Use Cases Beyond WebDAV

While born from WebDAV, the concept of a multi-status response is incredibly useful in modern API design for any bulk operation:

  1. Bulk DELETEs: "Delete all these posts." Some might succeed, others might fail due to permissions or because they're already gone.
  2. Bulk POSTs/Creates: "Create these 10 users." Some usernames might already be taken.
  3. Bulk UPDATES: "Update the prices of these products." Some product IDs might be invalid.
  4. Validation Endpoints: "Validate these 50 data records." Each record can have its own validation errors.

How Clients Handle 207 Responses

When a client receives a 207 Multi-Status response, it should:

This nuanced handling allows clients to maintain synchronization and integrity across complex operations. This means developers must handle 207 explicitly in their code.

The Modern JSON Alternative

While 207 is tied to XML, the pattern it establishes is timeless. Many modern APIs implement the concept of a multi-status response using JSON instead of XML, often with a 200 OK status code.

A modernized version of the previous example might look like this:

HTTP/1.1 200 OKContent-Type: application/json
{
  "results": [
    {
      "href": "/files/report.pdf",
      "status": 200,
      "message": "OK"
    },
    {
      "href": "/files/archive.zip",
      "status": 423,
      "message": "Locked"
    },
    {
      "href": "/files/photo.jpg",
      "status": 404,
      "message": "Not Found"
    }
  ]
}

This approach is often more palatable to developers working in a JSON-centric world. However, using the official 207 status code is more semantically correct if you're sticking strictly to HTTP standards.

How APIs Use 207 Responses

Modern APIs can adopt 207 Multi-Status in batch operations:

Using 207 makes APIs more transparent and avoids confusion.

Testing 207 Responses with Apidog

Testing an API that returns 207 is more complex than testing a simple endpoint. You need to validate the structure of the XML and the status codes for each individual item. Handling a 207 Multi-Status response can be tricky because of its complex payload. Apidog is an ideal tool for this task.

With Apidog, you can:

  1. Craft Bulk Requests: Easily set up a request that will trigger a bulk operation on the server.
  2. Parse XML Responses: Apidog can display the XML response in a structured, easy-to-read format, allowing you to quickly see each <response> block.
  3. Write Advanced Assertions: You can write test scripts in Apidog that:

4.  Handle Errors: Test how your client application logic should handle the mixed bag of successes and failures contained in a 207 response.

button

This level of testing is crucial for building reliable clients that can react intelligently to partial success. Download Apidog for free today and simplify your experience with multi-status and other HTTP codes. Unlike Swagger or Postman, Apidog goes beyond testing it’s about designing and documenting real-world workflows.

Common Mistakes with 207

Implementing 207 Multi-Status: Best Practices

If you’re a developer building APIs that use 207, keep these points in mind:

Challenges and Considerations

Despite these, when batch processing is required, 207 is well worth adopting.

Conclusion: Why the 207 Multi-Status Status Code Should Be in Your Toolbox

The HTTP 207 Multi-Status code is an essential tool when working with multi-resource operations, batch processing, and complex APIs. It empowers servers to provide detailed, structured feedback about individual outcomes in a single response something that simpler status codes cannot handle well. While its XML-based WebDAV roots can feel dated, the underlying pattern is more relevant than ever in a world of complex web applications that need to manage collections of data efficiently. The 207 Multi-Status code may not show up in everyday browsing, but for developers working with WebDAV, batch operations, or APIs that return multiple results, it’s a game changer.

It allows a server to communicate multiple outcomes clearly and efficiently within a single response something a simple 200 OK or 500 Internal Server Error can’t handle. For most common API needs, you'll likely use simpler status codes. But for the specific niche of bulk operations, understanding 207 provides a blueprint for how to do it right. It teaches the importance of providing clients with granular feedback, enabling them to build resilient and user-friendly applications that can handle the complexities of partial success.

If you’re designing or testing APIs that might need multi-status behavior, don’t struggle with ad-hoc mock servers, the 207 status code is your friend. And when you're ready to build or integrate with APIs that require this level of sophistication, a tool like Apidog provides the necessary features to debug, test, and validate these complex interactions, ensuring your application handles every single status in a multi-status response correctly. It’s the perfect tool for testing APIs that utilize complex HTTP status codes like 207 Multi-Status, helping you build better APIs faster. You’ll be able to design, mock, and test 207 Multi-Status responses effortlessly, while also generating clean API documentation for your team.

In a world where APIs are increasingly complex and interconnected, understanding and leveraging codes like 207 Multi-Status can save time, reduce errors, and improve developer experience.

button

Explore more

Are These the Top 10 AI Code Review Tools Revolutionizing Development in 2025

Are These the Top 10 AI Code Review Tools Revolutionizing Development in 2025

Explore the game-changing AI Code Review Tools 2025 transforming software development. From Open Source PR Reviewer solutions like PR-Agent to enterprise platforms, discover tools that automate bug detection, enhance security, and boost productivity.

17 September 2025

How to Get Started with Google's AI Payment API (AP2)

How to Get Started with Google's AI Payment API (AP2)

Discover the Agent Payments Protocol (AP2), Google's AI Payment API for verifiable AI-driven transactions. Learn its architecture, core principles like user privacy and accountability, partners, and a sample transaction flow.

17 September 2025

What Can GPT-5 Codex Do? Real Examples and Applications

What Can GPT-5 Codex Do? Real Examples and Applications

Unlock the potential of GPT-5 Codex with real-world examples that streamline coding tasks. Developers harness this AI to generate APIs, refactor code, and enhance productivity.

17 September 2025

Practice API Design-first in Apidog

Discover an easier way to build and use APIs