Client-side and server-side describe where an app's code runs: either on the user's device (client-side), or on a server (server-side). Amplitude offers several types of sources to cover each of your needs. This doc describes the differences between client-side and server-side sources, and gives a brief overview of third-party sources.

Both Amplitude client-side SDKs and server-side SDKs use API endpoints. These endpoints offer flexibility for implementing custom solutions without Amplitude's SDKs, especially for programming languages Amplitude's SDKs don't support, like PHP.

| Name                                            | API endpoints                                                                                                                                                                              |
| ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [Analytics and Data SDKs](/docs/sdks/analytics) | [HTTP V2 API](/docs/apis/analytics/http-v2) and [Batch event upload](/docs/apis/analytics/batch-event-upload) |
| [Experiment SDKs](/docs/sdks/experiment-sdks)   | [Evaluation API](/docs/apis/experiment/experiment-evaluation-api)                                                                                                                          |

## Client-side sources

Use client-side sources in apps that your users run on their own devices, like mobile, web browser, and desktop apps. In these sources, code runs on the user's device.

Amplitude's client-side sources include these SDKs:

- Web: Browser, Marketing Analytics Browser, React Native
- Mobile: Android, iOS, Unity Plugin, Flutter, React Native
- Game engine: Unity Plugin, Unreal
  
## Server-side sources

Use server-side sources in secure, multi-user environments like web servers and services that you run on your own servers. In these sources, code runs on the server.

Amplitude's server-side sources include these SDKs and APIs:

- Node.js SDK
- Go SDK
- Python SDK
- Java SDK

## Third-party sources

Third-party is another kind of source. These sources let you import data from other platforms into Amplitude. Each third-party source requires an account with that platform, and each has different setup requirements. Go to the [Source catalog](/docs/data/source-catalog) for all third-party sources.

## How to choose

Use this guide to help you choose the kinds of sources you need.

- *Client-side*: Choose client-side sources for the simplest initial instrumentation.
- *Server-side*: Choose server-side sources to track server-side events and use existing user data tracking workflows.
- *Hybrid*: Choose a hybrid approach that includes both client-side and server-side sources to combine simpler implementation with server-side event tracking.
- *Third party*: Choose these sources if you already have a third-party data layer such as ad networks or marketing automation tools.