# Event Stream Sources Overview


The event data originates via a **source** in RudderStack. The most common event sources are your apps and web properties, but can include third-party cloud apps, server integrations, and even your own data warehouse.

The following sections provide more detail on the available source types, with links to the setup guides for each source. 

{{< tip >}}
If you're new to RudderStack, go through the [Quickstart]({{< ref "get-started/introduction/quickstart.md" >}}) guide to create your first source.
{{< /tip >}}

## Event Streams

RudderStack's [Event Streams]({{< ref "sources/event-streams/_index.md" >}}) feature lets you collect event data from all your sites and applications and route it to a wide array of customer tools and data warehouses.

### SDKs

RudderStack provides open source [SDKs]({{< ref "sources/event-streams/sdks/_index.md" >}}) for web, mobile, and server applications:

#### Web

Track customer event data from your website and web apps and send it to the specified destinations:

{{< sources category="web" >}}

#### Mobile

Use native mobile SDKs for the mobile operating systems and development frameworks:

{{< sources category="mobile" >}}

#### Server

Use server-side SDKs to track event data from your backend applications and send it to the specified destinations:

{{< sources category="server" >}}

### Cloud Apps

RudderStack lets you ingest event data from your [cloud apps]({{< ref "sources/event-streams/cloud-apps/_index.md" >}}) and route it to the desired destinations.

{{< sources category="webhook" >}}

### HTTP source

You can also leverage the HTTP source to send events to RudderStack directly via [HTTP API calls]({{< ref "api/http-api.md" >}}) from your server-side applications:

{{< sources category="http" >}}

### Custom webhook

You can also add any source that supports a webhook, use it to ingest events, and send them to your preferred destinations via RudderStack. 

{{< sources category="custom webhook" >}}

## Reverse ETL

With RudderStack's [Reverse ETL]({{< ref "sources/reverse-etl/_index.md" >}}) capabilities, you can use your data warehouse as a data source. You can tap into your warehouse data and enrich data pipelines elsewhere in your stack, for enhanced customization, personalization, and targeting.

{{< sources type="reverse ETL" >}}

## API

Use a native SDK applicable for your environment wherever possible as it adds user context automatically, batches events, and retries on delivery failure.

However, if no SDK fits your stack, create an [HTTP source]({{< ref "sources/event-streams/http.md" >}}) and send events with one of these APIs:

| API | Request method | When to use |
| :--- | :--- | :--- |
| [HTTP API]({{< ref "api/http-api.md" >}}) | `POST` | Server-side apps, or any client that can send authenticated `POST` requests with a JSON body |
| [Pixel API]({{< ref "api/pixel-api.md" >}}) | `GET` | Environments where `POST` is not possible — for example, HTML/CSS-only UIs, email open tracking, or impression tracking via an `<img>` tag (similar to legacy analytics pixels) |

<br />
