---
title: Prospect sources
description: Look up the sources you can record against prospect contacts and Prospect Companies.
product: signal
section: api
order: 16
---

# Prospect sources

A prospect source records where a prospect contact or Prospect Company came from, such as your website or a trade show. Use a source's `id` as `source_id` on [prospect contacts](prospects.md) and [Prospect Companies](prospect-companies.md).

These endpoints are read-only and use the `prospects:read` scope.

## The prospect source object

| Field | Type | Notes |
| --- | --- | --- |
| `id` | string | Readable ID, such as `rls_website`. |
| `code` | string | Upper-case code, such as `WEBSITE`. |
| `name` | string | Display name. |
| `description` | string or null | |
| `sort_order` | integer | Display order, lowest first. |
| `is_active` | boolean | Only active sources can be set on a prospect contact. |
| `created_at` | string | ISO 8601 timestamp. |
| `updated_at` | string | ISO 8601 timestamp. |

```json
{
  "id": "rls_website",
  "code": "WEBSITE",
  "name": "Website",
  "description": "Inbound from company website",
  "sort_order": 1,
  "is_active": true,
  "created_at": "2026-02-09T00:00:00.000Z",
  "updated_at": "2026-02-09T00:00:00.000Z"
}
```

Signal's standard sources:

| `id` | Name |
| --- | --- |
| `rls_website` | Website |
| `rls_referral` | Referral |
| `rls_trade_show` | Trade Show |
| `rls_cold_outreach` | Cold Outreach |
| `rls_linkedin` | LinkedIn |
| `rls_partner` | Partner |
| `rls_import` | Import |
| `rls_meta_lead_ads` | Meta Lead Ads |

---

## List prospect sources

`GET /prospect-sources` · Scope: `prospects:read`

Returns Signal's standard prospect sources in one response (`meta.hasMore` is always `false`). Sources your workspace added itself aren't included in this list, but you can fetch them by ID.

### Example

```bash
curl https://crm.empiraa.app/api/v1/prospect-sources \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```js
const res = await fetch("https://crm.empiraa.app/api/v1/prospect-sources", {
  headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const { data } = await res.json();
```

### Response `200`

```json
{
  "data": [
    { "id": "rls_website", "code": "WEBSITE", "name": "Website", "description": "Inbound from company website", "sort_order": 1, "is_active": true, "created_at": "2026-02-09T00:00:00.000Z", "updated_at": "2026-02-09T00:00:00.000Z" },
    { "id": "rls_referral", "code": "REFERRAL", "name": "Referral", "description": "Referred by existing customer or partner", "sort_order": 2, "is_active": true, "created_at": "2026-02-09T00:00:00.000Z", "updated_at": "2026-02-09T00:00:00.000Z" }
  ],
  "meta": { "cursor": null, "hasMore": false },
  "error": null
}
```

---

## Get a prospect source

`GET /prospect-sources/{id}` · Scope: `prospects:read`

Returns a standard source or one of your workspace's own sources.

### Path parameters

| Parameter | Type | Notes |
| --- | --- | --- |
| `id` | string | Prospect source ID. |

### Example

```bash
curl https://crm.empiraa.app/api/v1/prospect-sources/rls_website \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```js
await fetch("https://crm.empiraa.app/api/v1/prospect-sources/rls_website", {
  headers: { Authorization: "Bearer YOUR_API_KEY" },
});
```

### Response `200`

The [prospect source object](#the-prospect-source-object) in `data`.

### Errors

| Status | Code | When |
| --- | --- | --- |
| 404 | `NOT_FOUND` | No source with that ID is available to this workspace. |
