> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vern.so/llms.txt
> Use this file to discover all available pages before exploring further.

# List sources

> List the sources in your account so your end-customers can pick which system they're migrating from.

```http theme={null}
GET https://app.vern.so/api/v1/sources
```

Returns the **sources** in your account — the systems you migrate customers off
of, defined in the Vern UI. Use it to build a source picker in your own product
so each customer can choose which system they're migrating from, then pass the
chosen `name` as `source` when you
[create a migration](/migration-api/create-a-migration).

## Authentication

Requires an `x-api-key` header. See [Authentication](/migration-api/authentication).

## Response

`200 OK`

```json theme={null}
{
  "sources": [
    {
      "name": "Salesforce",
      "logo_url": "https://logo.clearbit.com/salesforce.com"
    }
  ]
}
```

<ResponseField name="name" type="string">
  The source's name — the system you migrate from (e.g. "Salesforce"). This is
  the public identifier: pass it as `source` when you
  [create a migration](/migration-api/create-a-migration). Names are deduped, so
  each appears once.
</ResponseField>

<ResponseField name="logo_url" type="string | null">
  A logo for the source, suitable for rendering in your picker. `null` if none is
  set.
</ResponseField>

<Note>
  Sources are addressed by **name**, never by an ID. If two sources in your
  account share a name, referencing it is ambiguous and create / pin calls return
  `409` until you rename one in the UI.
</Note>

<Note>
  Sources and templates are **independent** lists. A source is the system you
  migrate from; templates are the importable objects, shared across your account.
  List them separately and let your customer pick each — see
  [List templates](/migration-api/list-templates).
</Note>

## Errors

| Status | Meaning                              |
| ------ | ------------------------------------ |
| `401`  | API key missing or invalid.          |
| `429`  | Rate limit hit — back off and retry. |
| `500`  | Server error.                        |

## Example

```bash theme={null}
curl https://app.vern.so/api/v1/sources \
  -H "x-api-key: $VERN_API_KEY"
```

## Next

* [List templates](/migration-api/list-templates) — the importable objects.
* [Pin a source](/migration-api/pin-a-source) — fix the recipe a source reuses.
* [Create a migration](/migration-api/create-a-migration) — create a migration against a source.
