---
title: "List message senders"
method: GET
path: "/v1/message-senders"
tags: ["Campaigns"]
---

# List message senders

`GET /v1/message-senders`

## Request

- Base URL: `https://api.folk.app`
- URL: `https://api.folk.app/v1/message-senders`
- Auth: HTTP bearer

Retrieve a paginated list of the email addresses you can send campaigns from, last used first: those you own, those shared with the workspace, and every sender of the workspace for admins. Senders still waiting for verification are left out. Each sender comes with its `signature`, which is what `{{signature}}` inserts on a new step or message: end a body with `<p>{{signature}}</p>` to sign it, rather than writing the signature yourself.<br/><Warning>This endpoint is currently in open beta. The API surface may change as we iterate based on feedback.</Warning>

## Query parameters

- `limit` integer
- `cursor` string

## Response `200`

A page of the senders you can send campaigns from.

- object
  - `data` object, required
    - `items` MessageSender[], required
      - `id` string, required: The ID of the sender.
      - `email` string, required: The email address messages are sent from.
      - `displayName` string, required: The name messages are sent under.
      - `provider` 'custom_domain' | 'gmail', required: How messages are sent: `custom_domain` through folk from a verified address of your domain, `gmail` through the Gmail account of the sender. Only `custom_domain` senders accept an unsubscribe link.
      - `supportsSequences` boolean, required: Whether the sender can send follow-up steps. A campaign with more than one step needs such a sender on every step.
      - `signature` string, nullable, required: The signature `{{signature}}` inserts when a body ending with it is written to a new step or message, as HTML; null when the sender has none. End a body with `<p>{{signature}}</p>` to sign it, rather than writing the signature yourself. Senders set up their signature in the app.
    - `pagination` object, required
      - `nextLink` string
  - `deprecations` string[]

## Other responses

- `400`: The request was unacceptable, often due to missing an invalid parameter.
- `401`: No valid API key provided.
- `403`: The API key doesn’t have permissions to perform the request.
- `404`: The requested resource doesn’t exist.
- `422`: The request was unacceptable, often due to missing or invalid parameters.
- `429`: Too many requests hit the API too quickly. We recommend an exponential backoff of your requests.
- `500`: Something went wrong on our end.
- `503`: The server is overloaded or down for maintenance.

## Changes

- **2026-11-03** `c6818f3ba60d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/folk/apis/folk-external-api/changes/v1/message-senders/get.md)

---

[API](https://skmtc.dev/folk/apis/folk-external-api.md) - [All operations](https://skmtc.dev/folk/apis/folk-external-api/llms.txt) - [OpenAPI document](https://skmtc.dev/folk/apis/folk-external-api/revisions/c6818f3ba60d?raw)
