> ## Documentation Index
> Fetch the complete documentation index at: https://docs.provenmetal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Order again

> Find a customer's earlier orders and price one again.

The same flow as the MCP's [`previous_orders` and `reorder`](/mcp/ordering): the customer proves the email they ordered with, then any of their own paid or requested orders is priced again with only what changes.

## 1. Find the orders

```bash theme={"system"}
curl https://api.provenmetal.com/v1/previous-orders \
  -H "X-API-Key: $PROVENMETAL_API_KEY" -H "Content-Type: application/json" \
  -d '{"email": "ada@example.com"}'
```

ProvenMetal emails a 6-digit code there if it has orders for that email. Send the email and the code to get the orders and a `history_token` for 60 minutes; send `history_token` alone to list them again.

```json theme={"system"}
{
  "ok": true,
  "history_token": "…",
  "expires_in_minutes": 60,
  "orders": [{ "order_id": "…", "order_ref": "PM-ABCDE", "quantity": 10, "assembly": true, "board": { "layers": 2, "solder_mask": "Black" }, "do_not_fit_refs": ["R21"] }]
}
```

## 2. Price one again

```bash theme={"system"}
curl https://api.provenmetal.com/v1/reorders \
  -H "X-API-Key: $PROVENMETAL_API_KEY" -H "Content-Type: application/json" \
  -d '{"history_token": "…", "order_id": "…", "quantity": 25, "solder_mask": "Blue"}'
```

* Pass only what changes. `ship_to` replaces the earlier delivery whole; a part list (`do_not_fit_refs`, `customer_supplied_refs`, `substitutions`) replaces the earlier one, and `[]` clears it.
* Without `upload_id` the earlier order's files are used. For revised files, send them to `POST /v1/uploads` first and pass that `upload_id`.
* The reply is a quote, exactly as [`POST /v1/quotes`](/api/quotes) answers: `201` with the quote, or `202` and `GET /v1/quote-requests/{request_id}` while it prices.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.