---
title: "Update banner landing URLs in batch"
type: reference
method: POST
path: /rest-api/banners/urls.do
tag: "Banners"
---

# Update banner landing URLs in batch

`POST https://YOUR-NETWORK-DOMAIN/rest-api/banners/urls.do`

Updates landing URLs for multiple banners in a single request. The request body must contain a JSON array of {id, url} objects mapping banner IDs to their new landing URLs. Each URL is validated before saving (a scheme and a host are required). The response lists the banners saved in 'updated' and every refused one in 'failures' as {id, error} (error: 'invalid_url', 'no_url_property_found', 'permission_denied', 'not_found', 'deleted', 'banner_file_missing', 'not_saved'), with an overall success flag. The older per-banner keys are still sent. An entry without an id is refused with 400 and nothing changes.

## Body

A JSON body. An example, built from the field definitions:

```json
[
  {
    "url": "https://advertiser.example.com/landing-page",
    "id": "5001"
  }
]
```

## Responses

- `200` — Every banner was saved, or some were: success=false with 'failures' when not all of them
- `400` — Wrong request format, an entry without an id, or no banner was saved (see 'failures')
- `401` — Authentication error
- `403` — No banner was saved because the caller may not update them

## Example request

```bash
curl --request POST \
  --url 'https://YOUR-NETWORK-DOMAIN/rest-api/banners/urls.do' \
  --header 'X-Api-Key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '[
  {
    "url": "https://advertiser.example.com/landing-page",
    "id": "5001"
  }
]'
```

Source: https://epom.com/ad-server/docs/api/banners/post-banners-urls