---
title: "Restore a dismissed domain, or a batch"
method: POST
path: "/trackers/{id}/discoveries/restore"
tags: ["Keyword discovery"]
---

# Restore a dismissed domain, or a batch

`POST /trackers/{id}/discoveries/restore`

## Request

- Base URL: `https://api.epovest.com/v1`
- URL: `https://api.epovest.com/v1/trackers/{id}/discoveries/restore`
- Auth: HTTP bearer

Takes a domain back out of `dismissed`, so discovery may surface it again. Idempotent:
restoring a domain that was not dismissed leaves it eligible. Manager or above.

## Request body

- union: Send `domain` for one, or `domains` for several, never both. A batch is all or nothing, so you never have to guess which half took. The answer echoes the shape you sent.
  - object
    - `domain` string, required
    - `domains` string[]
  - object
    - `domain` string
    - `domains` string[], required

## Response `200`

The domains now eligible again, in the shape that was sent.

- object
  - `restored` union, required
    - string
    - string[]

## Other responses

- `400`: `bad_request`: malformed body or parameter; the message says what.
- `401`: `unauthenticated`: missing, unknown or revoked key.
- `403`: `insufficient_scope`: the credential may not do this, either because the key lacks the scope, or, on a one-click connection, because the person lacks the role the action needs (manager, or owner to start, pause and top up). On that path, read it as "this person may not do this" and tell them which role the action needs.
- `404`: `not_found`: unknown for this account.
- `409`: `not_editable`: a retired tracker version is revision history.
- `429`: `rate_limited`: 120 requests per minute per credential, sliding window. Retry after `Retry-After` seconds.

---

[API](https://skmtc.dev/epovest/apis/epovest-api.md) · [All operations](https://skmtc.dev/epovest/apis/epovest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/epovest/apis/epovest-api/revisions/7a78ee27ecbb?raw)
