> ## Documentation Index
> Fetch the complete documentation index at: https://docs.topify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Recorded URLs

> Manage project URLs used as inputs for prompt discovery and recommendations.

Recorded URLs are pages associated with a project that Topify can use for URL-driven prompt discovery. Recording a URL does not create a prompt by itself; use the prompt recommendation endpoint when you want new prompt candidates.

## List recorded URLs

```http theme={null}
GET /projects/{project_id}/recording
```

```bash theme={null}
curl "https://topify-customer-api-production.up.railway.app/api/public/v1/projects/{project_id}/recording" \
  -H "X-API-Key: tk_live_..."
```

### Response

```json theme={null}
{
  "code": 200,
  "message": "200 OK",
  "data": {
    "project_id": "a1b2c3d4-...",
    "total": 1,
    "urls": [
      {
        "id": "e5f6a7b8-...",
        "url": "https://acme.com/pricing",
        "normalized_url": "https://acme.com/pricing",
        "title": "Pricing | Acme",
        "icon_urls": ["https://www.google.com/s2/favicons?domain=acme.com&sz=128"],
        "created_at": "2026-07-13T12:00:00+00:00"
      }
    ]
  }
}
```

***

## Add recorded URLs

```http theme={null}
POST /projects/{project_id}/recording
```

Adds up to 50 URLs in one request. If `title` is omitted, Topify fetches it in the background.

### Request body

| Field          | Type      | Required | Description                                     |
| -------------- | --------- | -------- | ----------------------------------------------- |
| `urls`         | object\[] | Yes      | One to 50 URL objects                           |
| `urls[].url`   | string    | Yes      | Page URL                                        |
| `urls[].title` | string    | No       | Page title; fetched asynchronously when omitted |

```bash theme={null}
curl -X POST "https://topify-customer-api-production.up.railway.app/api/public/v1/projects/{project_id}/recording" \
  -H "X-API-Key: tk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"urls":[{"url":"https://acme.com/pricing","title":"Pricing | Acme"}]}'
```

### Response

```json theme={null}
{
  "code": 200,
  "message": "200 OK",
  "data": {
    "project_id": "a1b2c3d4-...",
    "affected_count": 1,
    "total_recorded": 4
  }
}
```

***

## Remove recorded URLs

```http theme={null}
DELETE /projects/{project_id}/recording
```

Removes URLs from the recording list. It does not delete prompts or prompt analytics.

<Warning>
  Send only the URLs you intend to remove. API keys currently have full-team access.
</Warning>

```bash theme={null}
curl -X DELETE "https://topify-customer-api-production.up.railway.app/api/public/v1/projects/{project_id}/recording" \
  -H "X-API-Key: tk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"urls":["https://acme.com/pricing"]}'
```

The response uses the same `affected_count` and `total_recorded` fields as the add endpoint.
