---
title: "List all sources for the customer (active + paused) with aggregate stats"
method: GET
path: "/api/me/sources"
tags: ["me"]
---

# List all sources for the customer (active + paused) with aggregate stats

`GET /api/me/sources`

## Request

- Base URL: `https://api.signalraven.ai`
- URL: `https://api.signalraven.ai/api/me/sources`
- Auth: none declared

Monitored people (Intelligence > Person Activity Monitoring) are left out unless includeMonitoredPeople=1; they are managed under /api/me/intelligence/monitoring and never count against the source cap. monitoredPeopleCount is always returned.

## Query parameters

- `period` '7' | '30' | 'all'
- `includeMonitoredPeople` '0' | '1'

## Response `200`

Source list

- MeSourceListResponse
  - `sources` SourceWithStats[], required
    - `id` string, uuid, required: Source ID
    - `customerId` string, uuid, required
    - `sourceType` 'own_company' | 'competitor_company' | 'competitor_company_broad' | 'competitor_employee' | 'keyword_search' | 'industry_search' | 'mention_tracking' | 'hashtag_search' | 'target_person' | 'event_search' | 'poster_search', required: Source type classification
    - `linkedinUrl` string, required
    - `displayName` string, nullable, required
    - `priority` integer, required
    - `isActive` boolean, required
    - `metadata` object, nullable, required
    - `topicFilter` string, nullable, required
    - `searchQuery` string, nullable, required
    - `industryCodes` string, nullable, required
    - `lastSeenPostId` string, nullable, required: Most recent post ID seen during discovery
    - `lastDiscoveryAt` string, date-time, nullable, required
    - `createdAt` string, date-time, required
    - `event` object, nullable
      - `name` string, required
      - `startDate` string, required
      - `endDate` string, required
      - `phase` 'dormant' | 'pre' | 'live' | 'wrap' | 'ended', required
      - `completedAt` string, nullable, required
    - `poster` object, nullable
      - `kind` 'partner_launch' | 'product_launch' | 'funding' | 'opening' | 'topic' | 'custom', required
      - `kindDescription` string, nullable, required
      - `subjectScope` 'any' | 'subject_company', required
      - `seniorLeadership` boolean, required
      - `maxReposts` integer, required
      - `aliases` string[], required
    - `countsTowardCap` boolean
    - `inactiveReason` string, nullable
    - `lastCheckedAt` string, date-time, nullable: target_person only: when the weekly check last ran (every 30 days after a scraper-error streak). lastDiscoveryAt moves on every daily poll, including days no check was due. null for other source types and until the first check completes.
    - `status` 'producing' | 'watching' | 'slow' | 'paused' | 'error': Computed source health badge — derived portal-side
    - `strengthScore` number: Relevance rate 0-1, shown as "Relevance rate" on the Sources page: the share of the source's posts in the window that passed the relevance check (qualified, harvesting, or closed after max harvests or expiry), archived posts excluded. Not a signal measure.
    - `sparkline` integer[]: 30 daily counts of signals attributed to this source (oldest → newest)
    - `totalPosts` integer: Watched posts in window
    - `qualifiedPosts` integer: Posts in qualified or harvesting lifecycle
    - `avgRelevanceScore` number, nullable: Avg watched_posts.relevance_score (1-5; lower = more relevant)
    - `totalLikes` integer
    - `totalComments` integer
    - `signalCount` integer: Signals attributed to this source within the window
    - `credits` number: Credits this source spent within the window (credit_transactions.source_id, numeric to scale 4). GET /api/me/sources only.
    - `scoreDistribution` object: Counts of watched_posts grouped by relevance_score (1=Strong … 5=Irrelevant) within the window
      - `1` integer, required
      - `2` integer, required
      - `3` integer, required
      - `4` integer, required
      - `5` integer, required
  - `total` integer, required
  - `monitoredPeopleCount` integer

## Other responses

- `401`: Not authenticated
- `403`: Customer not active or not provisioned

---

[API](https://skmtc.dev/signalraven/apis/zygnal-api.md) · [All operations](https://skmtc.dev/signalraven/apis/zygnal-api/llms.txt) · [OpenAPI document](https://skmtc.dev/signalraven/apis/zygnal-api/revisions/36e1d9b9d604?raw)
