---
title: "Replace a url_set monitor's URL list"
method: PUT
path: "/v1/monitors/{monitorId}/urls"
tags: ["Monitors"]
---

# Replace a url_set monitor's URL list

`PUT /v1/monitors/{monitorId}/urls`

## Request

- Base URL: `https://api.ironfang.com/audit`
- URL: `https://api.ironfang.com/audit/v1/monitors/{monitorId}/urls`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Makes the monitor's URL set exactly the given list and returns the monitor: a URL already in the set keeps its identity and label, a URL absent from the list is removed, and duplicates after normalisation are stored once. At most 500 URLs. Only a `url_set` monitor has a URL list; any other mode is answered 409 `not_url_set`. Historical audits keep the scope they ran with.

## Request body

- object
  - `urls` string[], required: The complete new URL set. Validated against the site's hosts, patterns and the public-target policy; the whole set is refused if any entry fails.

## Response `200`

Monitor

## Other responses

- `400`: Problem response
- `401`: Problem response
- `403`: Problem response
- `404`: Problem response
- `409`: Problem response
- `422`: Problem response

---

[API](https://skmtc.dev/ironfang/apis/ironfang-audit-api.md) · [All operations](https://skmtc.dev/ironfang/apis/ironfang-audit-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ironfang/apis/ironfang-audit-api/revisions/7430deff2cbd?raw)
