# SDK setup overview > https://docs.errora.org/en/platforms/overview Errora is **Sentry-wire-compatible**. You install the **official Sentry SDK** for your platform, set the DSN to your Errora project, and everything else — errors, tracing, logs, replays, profiles, metrics, cron check-ins, user feedback — flows over the same connection. There is no Errora SDK. If your platform has a Sentry SDK ([the full list](https://docs.sentry.io/platforms/)), it works here. ## The DSN ```text https://@/ ``` Find it on the project page (**Projects → your project**), or over the API at `GET /api/v1/organizations/{org_id}/projects/{project_id}/keys`. Keep the DSN in an environment variable, never hardcoded: ```dotenv SENTRY_DSN=https://a1b2c3…@errora.example.com/6f1e… ``` ## Options that matter | Option | Why you want it | | --- | --- | | `dsn` | Where events go. Empty DSN = SDK disabled, which is how you turn Errora off in tests. | | `environment` | `production` / `staging` / … — filterable everywhere, and cron monitors keep per-environment state. | | `release` | `myapp@1.4.2`. Required for [source maps](/en/products/source-maps) and useful for regression hunting. | | `traces_sample_rate` | Turns on [performance/tracing](/en/products/performance). `1.0` in development, lower in production. | | `profiles_sample_rate` | Turns on [profiling](/en/products/profiling) (fraction *of sampled transactions*). | | `replaysSessionSampleRate` | Browser only — turns on [session replay](/en/products/session-replay). | | `send_default_pii` | Attaches user/IP/request data. Off by default; enable deliberately. | | `sample_rate` | Client-side error sampling (separate from the project's server-side sample rate). | | `attach_stacktrace` | Attaches stack traces to plain `capture_message` calls too. | | `before_send` | Your last chance to scrub secrets from a payload before it leaves the process. | ## What each product needs | Product | Turn on | | --- | --- | | [Errors](/en/products/issues) | Nothing — the SDK captures unhandled exceptions once initialized | | [Tracing](/en/products/performance) | `traces_sample_rate` (or `traces_sampler`) | | [Logs](/en/products/logs) | The SDK's logging integration (`enable_logs` / `_experiments: { enableLogs: true }`) | | [Session replay](/en/products/session-replay) | `replayIntegration()` + sample rates (browser) | | [Profiling](/en/products/profiling) | `profiles_sample_rate` or continuous profiling | | [Metrics](/en/products/metrics) | The SDK's metrics API, or send statsd lines | | [Cron monitoring](/en/products/crons) | The SDK's monitor decorator/`captureCheckIn`, or plain `curl` | | [User feedback](/en/products/user-feedback) | `feedbackIntegration()`, `showReportDialog()`, or the report API | | [AI monitoring](/en/products/insights) | The SDK's AI-agents / MCP integration (emits `gen_ai.*` spans) | | [Source maps](/en/products/source-maps) | Upload artifacts per release from CI | ## How the SDK talks to Errora Modern SDKs `POST` **envelopes** to: ```text POST https:///api//envelope/ ``` Older or minimal clients use the legacy error endpoint: ```text POST https:///api//store/ ``` Authentication is the DSN public key, sent in the `X-Sentry-Auth` header, as `?sentry_key=` (browser SDKs), or in the envelope header's `dsn` field (tunnelled envelopes). Gzip-compressed bodies are accepted. Errora answers `202 Accepted` as soon as the payload is queued. See [Ingestion API](/en/api/ingest) for the full endpoint reference, including the three non-SDK endpoints (cron check-ins, CSP reports, the crash-report modal). ## Verifying the connection 1. Send a deliberate error (`sentry_sdk.capture_exception(Exception("smoke test"))`). 2. Watch for `202` in your app's egress logs (or turn on the SDK's `debug=True`). 3. Look in **Issues** in the UI. If the SDK reports `401`, the public key is wrong or the key was deactivated. `404` means the project id in the DSN path is wrong. `429` means you are being rate limited. ## Per-platform guides - [JavaScript (browser)](/en/platforms/javascript) - [Node.js](/en/platforms/node) - [Python (Django, Flask, Celery)](/en/platforms/python) - [PHP & Laravel](/en/platforms/php-laravel) - [Go](/en/platforms/go) - [Other platforms](/en/platforms/other)