Source: https://dinakar-rewind.docs.pageloop.ai/api-reference/admin/reenrichreading

# Retry enrichment for failed reading items

POST `https://api.rewind.rest/v1/admin/reenrich-reading`

Iterates reading\_items where enrichment\_status = "failed" and re-runs enrichArticle on each. Instapaper often has full body text even when the original URL fetch 403s, so this typically rescues articles that stalled on legacy OG-fetch errors.

## Authorization

#### Authorization (header, string, required)

API key. Read keys (rw\_live\_...) access GET endpoints. Admin keys (rw\_admin\_...) access all endpoints.

## Body

#### limit (body, integer)

#### mode (body, enum (string)) — allowed: failed, missing-images

failed (default): retry rows where enrichment\_status=failed. missing-images: re-run on rows that are completed but have no og\_image\_url, useful after upgrading the OG-fetch headers to rescue NYT/Bloomberg-style articles.

## Response

#### 200

Re-enrichment complete

#### retried (number, required)

#### succeeded (number, required)

#### still\_failed (number, required)

#### took\_ms (number, required)

#### 401

Unauthorized

#### error (string, required)

#### status (integer, required)

#### 500

Internal server error

#### error (string, required)

#### status (integer, required)

#### Request

```bash cURL
curl -X POST 'https://api.rewind.rest/v1/admin/reenrich-reading' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{"limit": 0, "mode": "failed"}'
```

```javascript JavaScript
const res = await fetch('https://api.rewind.rest/v1/admin/reenrich-reading', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer <token>',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({"limit": 0, "mode": "failed"}),
});
const data = await res.json();
```

```python Python
import requests

res = requests.post(
    'https://api.rewind.rest/v1/admin/reenrich-reading',
    headers={'Authorization': 'Bearer <token>'},
    json={"limit": 0, "mode": "failed"}
)
data = res.json()
```

#### Response

```json 200
{
  "retried": 0,
  "succeeded": 0,
  "still_failed": 0,
  "took_ms": 0
}
```

```json 401
{
  "error": "Not found",
  "status": 404
}
```

```json 500
{
  "error": "Not found",
  "status": 404
}
```
