---
title: "List sending sources"
method: GET
path: "/sources"
tags: ["Source"]
---

# List sending sources

`GET /sources`

## Request

- Base URL: `https://api.palisade.email`
- URL: `https://api.palisade.email/sources`
- Auth: one of:
  - none
  - HTTP bearer
  - HTTP basic

List the sending sources Palisade knows about, with the SPF and DKIM support details used to build setup instructions. Authentication is optional. `instructions_curation` holds unreviewed AI proposals and is null unless the caller holds sources:update.

## Query parameters

- `status` 'ACTIVE' | 'PENDING_REVIEW' | 'REJECTED'
- `origin` 'DMARC_IO' | 'AI_DISCOVERED' | 'MANUAL'
- `search` string

## Response `200`

Success

- object
  - `data` object[], required
    - `id` string, uuid, required
    - `external_id` string, required
    - `name` string, required
    - `homepage` string, uri, nullable, required
    - `base_domains` string[], required
    - `category` 'SENDING_TOOL' | 'MAILBOX_PROVIDER' | 'VPS_PROVIDER' | 'SECURITY_PROVIDER' | 'EMAIL_RELAY', required
    - `dmarc_support` boolean, required
    - `spf_support` 'NONE' | 'RARE' | 'FULL', required
    - `spf_support_options` object, required
      - `direct` object, nullable, required
        - `values` string[], required
        - `requires_advanced_config` boolean, nullable, required
      - `subdomain` object, nullable, required
        - `is_managed` boolean, required
        - `requires_user_selection` boolean, required
        - `path` string, nullable, required
        - `value` string, nullable, required
        - `dns_records` object[], required
          - `type` 'TXT' | 'CNAME' | 'MX', required
          - `value` string
    - `dkim_support` 'NONE' | 'RARE' | 'FULL', required
    - `parent_source_id` string, uuid, nullable
    - `display_name` string, nullable
    - `envelope_froms` string[], required
    - `is_custom` boolean, required
    - `documentation` object, required
      - `spf` string, nullable
      - `dkim` string, nullable
      - `combined` string, nullable
    - `spf_reply_to_target` string, nullable, required
    - `spf_supported_methods` string[], required
    - `forwarding_type` 'NOT_FORWARDER' | 'FORWARDER' | 'FORWARDER_ONLY', required
    - `dkim_discovery_selectors` string[], required
    - `spf_discovery_values` string[], required
    - `spf_reply_to_discovery_values` string[], required
    - `mx_domains` string[], required
    - `dkim_instructions` object, nullable, required
      - `steps` string[], required
      - `dns_records` object[], required
        - `type` 'TXT' | 'CNAME', required
        - `name` string
        - `value` string
    - `spf_instructions` object, nullable
      - `steps` string[], required
      - `dns_records` object[], required
        - `type` 'TXT' | 'CNAME' | 'MX', required
        - `name` string
        - `value` string
    - `instructions_curation` object, nullable
      - `dkim` object, nullable
        - `status` 'PENDING' | 'APPROVED' | 'REJECTED', required
        - `proposal` object, required
          - `steps` string[], required
          - `dns_records` object[], required
            - `type` 'TXT' | 'CNAME' | 'MX', required
            - `name` string
            - `value` string
        - `provenance` object, required
          - `doc_url` string, required
          - `doc_title` string, nullable, required
          - `doc_discovered` boolean, required
          - `model` string, required
          - `confidence` number, required
          - `critic_notes` string[], required
          - `generated_at` string, required
        - `reviewed_at` string, nullable
        - `reviewed_by` string, nullable
      - `spf` object, nullable
        - `status` 'PENDING' | 'APPROVED' | 'REJECTED', required
        - `proposal` object, required
          - `steps` string[], required
          - `dns_records` object[], required
            - `type` 'TXT' | 'CNAME' | 'MX', required
            - `name` string
            - `value` string
        - `provenance` object, required
          - `doc_url` string, required
          - `doc_title` string, nullable, required
          - `doc_discovered` boolean, required
          - `model` string, required
          - `confidence` number, required
          - `critic_notes` string[], required
          - `generated_at` string, required
        - `reviewed_at` string, nullable
        - `reviewed_by` string, nullable
    - `status` 'ACTIVE' | 'PENDING_REVIEW' | 'REJECTED', required
    - `origin` 'DMARC_IO' | 'AI_DISCOVERED' | 'MANUAL', required
    - `ai_confidence` number, nullable, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
  - `page_info` object, required
    - `count` number, required
    - `page` number, required
    - `per_page` number, required

---

[API](https://skmtc.dev/palisade/apis/palisade-api.md) · [All operations](https://skmtc.dev/palisade/apis/palisade-api/llms.txt) · [OpenAPI document](https://skmtc.dev/palisade/apis/palisade-api/revisions/37b4ae5a7766?raw)
