Quickstart
Five minutes from zero to a captured exception.
1. Sign in
Errora authenticates with an Iranian mobile number (09XXXXXXXXX).
- Open the app and go to Sign in.
- Enter your mobile number. Errora answers whether the number already has an account and whether it has a password.
- Sign in with your password, or with the one-time code sent to you over SMS.
A brand-new number gets an account on first sign-in, plus a personal organization and signup credit (100,000 Toman by default). See Authentication for passwords, OTP and two-factor.
2. Create a project
A project is one application (or one service) whose events you want kept apart.
- Go to Projects → New project.
- Give it a name and pick a platform —
javascript,node,python,php,php-laravel,goorother. The platform only drives the icon and the setup snippet; ingestion works the same for all of them. - Errora creates the project and a DSN key for it.
3. Copy the DSN
The DSN is shown on the project page. It is in Sentry's standard format:
https://<public_key>@<your-errora-host>/<project_id>
Anything holding this DSN can send events to the project, so treat it like a write-only credential. You can create additional keys, or rotate one, from the project page — see Projects & DSN keys.
4. Install the official Sentry SDK
Errora speaks the Sentry wire protocol, so you use the official Sentry SDK for your platform. Nothing Errora-specific gets installed.
pip install sentry-sdk # Python
npm install @sentry/node # Node.js
npm install @sentry/browser # Browser
composer require sentry/sentry-laravel # Laravel
go get github.com/getsentry/sentry-go # Go
Point it at your DSN:
import sentry_sdk
sentry_sdk.init(
dsn="https://<public_key>@<your-errora-host>/<project_id>",
environment="production",
release="myapp@1.4.2",
traces_sample_rate=1.0, # performance/tracing
)
Full per-platform guides: SDK setup.
5. Send a test event
Trigger an exception on purpose:
sentry_sdk.capture_exception(Exception("Hello from Errora"))
Or, without any SDK, curl the store endpoint directly:
curl -X POST "https://<your-errora-host>/api/<project_id>/store/" \
-H "Content-Type: application/json" \
-H "X-Sentry-Auth: Sentry sentry_version=7, sentry_key=<public_key>" \
-d '{
"event_id": "'"$(uuidgen | tr -d - | tr "A-Z" "a-z")"'",
"timestamp": "'"$(date -u +%Y-%m-%dT%H:%M:%SZ)"'",
"platform": "other",
"level": "error",
"exception": {"values": [{"type": "SmokeTest", "value": "Hello from Errora"}]}
}'
The endpoint answers 202 Accepted immediately — grouping happens right after, so the event
appears in the UI a moment later.
6. See it in the UI
Open Issues. Your exception is there, grouped by type and stack trace, with
times_seen, first/last seen, the stack trace, breadcrumbs, request context and tags.
If nothing arrives:
| Symptom | Likely cause |
|---|---|
401 from the ingest endpoint | Wrong or disabled DSN key, or a key that belongs to a different project |
202 but no issue after a minute | The project's sample rate is below 1.0, so the event was not stored |
429 with a "suspended" message | The organization's wallet is past its credit line — see Wallet |
| Nothing leaves your app | The SDK never initialized — turn on its debug option and check for a startup error |
Next steps
- Turn on the rest of the platform — tracing, logs, session replay, profiling, metrics.
- Get told when things break — alerts & notification channels.
- Invite your team — Organizations & members.
- Take the in-app tour — Product tour.