# Retired route names carts

October 1, 2026 · API · Breaking

`POST /v1/orders` is still retired, and still answers `410` for every method before it reads any credential. Its error now names the door that builds carts today:

```bash
HTTP/1.1 410 Gone

{
  "error": {
    "code": "use_carts",
    "message": "POST /v1/orders no longer builds. Build a cart with POST /v1/carts, using a connected person's token or a build grant from POST /v1/users/:id/grant, or over MCP at https://mcp.layout.link. See https://developer.layout.link/reference/carts."
  }
}
```

## Why it matters

The old answer said ordering had moved to MCP only. Carts are on REST as well now, so an integration, or an agent reading the error, was sent to one door when there are two.

## What to do

Build with [POST /v1/carts](https://developer.layout.link/reference/carts), or over MCP. If your code switches on the old code, accept both: `use_carts` and `moved_to_mcp` are both in the published list. See [Every error code](https://developer.layout.link/reference/errors#every-error-code).

## Breaking changes

Yes, for code that matched `moved_to_mcp` exactly: the code is now `use_carts`. The status, the method coverage and the shape are unchanged.
