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

# Titlecase URL-shaped authors (e.g. 'https://.../by/mike-isaac' → 'Mike Isaac')

POST `https://api.rewind.rest/v1/admin/cleanup-reading-url-authors`

Iterates reading\_items where author starts with "http" (URL-shaped due to the source's `article:author` meta tag), strips the path slug, and titlecases it (e.g. `mike-isaac` → `Mike Isaac`). One-shot cleanup; forward sync now does this transformation at write time.

## Authorization

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

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

## Response

#### 200

Cleanup complete

#### scanned (number, required)

#### updated (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/cleanup-reading-url-authors' \
  -H 'Authorization: Bearer <token>'
```

```javascript JavaScript
const res = await fetch('https://api.rewind.rest/v1/admin/cleanup-reading-url-authors', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer <token>',
  },
});
const data = await res.json();
```

```python Python
import requests

res = requests.post(
    'https://api.rewind.rest/v1/admin/cleanup-reading-url-authors',
    headers={'Authorization': 'Bearer <token>'}
)
data = res.json()
```

#### Response

```json 200
{
  "scanned": 0,
  "updated": 0,
  "took_ms": 0
}
```

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

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