---
title: "List all sources"
method: GET
path: "/v1/projects/{projectID}/sources"
tags: ["Sources"]
---

# List all sources

`GET /v1/projects/{projectID}/sources`

This endpoint fetches multiple sources

## Path parameters

- `projectID` string, required

## Query parameters

- `direction` 'next' | 'prev'
- `next_page_cursor` string
- `perPage` integer
- `prev_page_cursor` string
- `provider` string
- `sort` string
- `type` string

## Response `200`

OK

- object
  - `message` string
  - `status` boolean
  - `data` object
    - `content` ModelsSourceResponse[]
      - `body_function` string, nullable
      - `created_at` string
      - `custom_response` DatastoreCustomResponse
        - `body` string
        - `content_type` string
      - `deleted_at` string, nullable
      - `event_type_location` string
      - `forward_headers` string[]
      - `header_function` string, nullable
      - `idempotency_keys` string[]
      - `is_disabled` boolean
      - `mask_id` string
      - `name` string
      - `project_id` string
      - `provider` 'github' | 'twitter' | 'shopify' | ''
      - `provider_config` DatastoreProviderConfig
        - `twitter` DatastoreTwitterProviderConfig
          - `crc_verified_at` string, nullable
      - `pub_sub` DatastorePubSubConfig
        - `amqp` DatastoreAmqpPubSubConfig
          - `auth` DatastoreAmqpCredentials
            - `password` string
            - `user` string
          - `bindedExchange` string, nullable
          - `deadLetterExchange` string, nullable
          - `host` string
          - `port` string
          - `queue` string
          - `routingKey` string
          - `schema` string
          - `vhost` string, nullable
        - `google` DatastoreGooglePubSubConfig
          - `project_id` string
          - `service_account` string, byte — encoding/json marshals []byte as a base64 string on the wire.
          - `subscription_id` string
        - `kafka` DatastoreKafkaPubSubConfig
          - `auth` DatastoreKafkaAuth
            - `hash` string
            - `password` string
            - `tls` boolean
            - `type` string
            - `username` string
          - `brokers` string[]
          - `consumer_group_id` string
          - `topic_name` string
        - `sqs` DatastoreSQSPubSubConfig
          - `access_key_id` string
          - `default_region` string
          - `endpoint` string — Optional: for LocalStack testing
          - `queue_name` string
          - `secret_key` string
        - `type` 'sqs' | 'google' | 'kafka' | 'amqp' | ''
        - `workers` integer
      - `type` 'http' | 'rest_api' | 'pub_sub' | 'db_change_stream' | ''
      - `uid` string
      - `updated_at` string
      - `url` string
      - `verifier` DatastoreVerifierConfig
        - `api_key` DatastoreApiKey
          - `header_name` string
          - `header_value` string
        - `basic_auth` DatastoreBasicAuth
          - `password` string
          - `username` string
        - `hmac` DatastoreHMac
          - `encoding` 'base64' | 'hex' | ''
          - `hash` string
          - `header` string
          - `secret` string
        - `type` 'noop' | 'hmac' | 'basic_auth' | 'api_key' | ''
    - `pagination` DatastorePaginationData
      - `has_next_page` boolean
      - `has_prev_page` boolean
      - `next_page_cursor` string
      - `per_page` integer
      - `prev_page_cursor` string
      - `total` integer

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found

---

[API](https://skmtc.net/frain-dev/apis/convoy-api-reference.md) · [All operations](https://skmtc.net/frain-dev/apis/convoy-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/frain-dev/convoy-api-reference/versions/dbd5b4f9cf13/schema)
