---
title: "Top cited domains for the latest or selected run"
method: GET
path: "/sources"
tags: ["Citations"]
---

# Top cited domains for the latest or selected run

`GET /sources`

## Query parameters

- `projectId` string, uuid, required
- `runId` string, uuid
- `topicId` string, uuid
- `platform` 'chatgpt' | 'chatgpt_app' | 'claude' | 'gemini' | 'gemini_app' | 'grok_app' | 'grok_api' | 'perplexity' | 'perplexity_app' | 'google_app' | 'deepseek' — LLM platform identifier. Newer scraper-backed ids end in `_app`; `chatgpt`, `perplexity`, and `gemini` are legacy and not returned by current runs.
- `category` 'own_brand' | 'competitor' | 'news' | 'ugc' | 'review_site' | 'third_party'
- `limit` integer
- `urlsPerDomain` integer
- `promptAttributes` string

## Response `200`

Successful response

- TopSource[]
  - `domain` string, required
  - `count` integer, required
  - `platforms` string[], required
  - `domainCategory` 'own_brand' | 'competitor' | 'news' | 'ugc' | 'review_site' | 'third_party', nullable
  - `urls` object[], required
    - `url` string, uri, required
    - `title` string
    - `count` integer, required

## Other responses

- `400` — Missing or invalid request parameter.
- `401` — Missing, malformed, or revoked API key.
- `402` — Monthly included API calls for your tier are used up (code `USAGE_LIMIT`). Body includes a `limit` object — `{ limitHit, currentTier, targetTier, feature, cap, used, resetAt }` — describing the cap and the upgrade that lifts it.
- `404` — Resource not found or not owned by your account.
- `429` — Rate limit, project cap, or daily quota hit. Body includes a `code` field.
- `500` — Server error. Retry; if persistent, contact support.

---

[API](https://skmtc.net/openlens/apis/openlens-api.md) · [All operations](https://skmtc.net/openlens/apis/openlens-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/openlens/openlens-api/versions/d307a7633c0a/schema)
