# errorgap — full site text Every public page on errorgap.com as plain text, generated at build time. Generated 2026-09-24. Source of truth is the HTML at each URL. --- # https://errorgap.com/ err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → LIVE Real-time signals that become incidents Production signals, caught in real time. Errors, slow requests, uptime checks, and deploys stream in live — then Errorgap correlates them into a single incident with a likely cause. So you're investigating, not piecing it together at 2am. Start free trial → See how it works Free tier · 50k events/mo No credit card SDKs for 16+ runtimes LIVE · ox-coffee · production refreshing automatically ERR ActionView::Template::Errorapp/views/spree/home/index.haml:20 0.2s ago ERR ActiveRecord::RecordNotFoundapp/controllers/products_controller.rb:34 4s ago WARN N+1 Query · Spree::Variantapp/views/spree/products/_card.html.erb:8 12s ago ERR NoMethodError · undefined `blah'lib/spree_core/helpers/base_helper.rb:70 38s ago INFO Deploy detected · v2.14.1CI · GitHub Actions 1m ago WARN Slow request · 4823msPOST /checkout/payment 2m ago ERR Stripe::CardError · card_declinedapp/services/checkout/charge.rb:81 3m ago INFO Source maps uploadedreleases/api 4m ago TRUSTED BY TEAMS AT Ox Coffee stream.dev Northshore cardamom Marlow Labs orbital/8 HOW IT WORKS From SDK to incident, automatically. Install the SDK and ship. Errorgap captures and groups errors, correlates them with uptime, latency, and deploy signals, then assembles the evidence into an incident you can investigate. 01 · Install Drop in the SDK One package per runtime. Initialize with your project key and the SDK starts capturing — no manual try/catch plumbing required. $ npm install @errorgap/sdk + added 1 package in 2s $ npx errorgap init --key=prj_019df… ↻ configured · 16 routes instrumented 02 · Capture We catch, group, dedupe Exceptions are fingerprinted by stack signature and message — thousands of occurrences of one bug collapse into a single group with a count and a graph. ×4,212 NoMethodError 03 · Correlate Signals become an incident A heuristic engine promotes elevated error rates, uptime failures, latency spikes, and deploy correlations into a first-class Incident. 04 · Investigate Likely cause, in one place A deterministic likely-cause panel, a confidence score, an evidence timeline, and an optional AI summary — everything to act, without tab-hopping. INCIDENT INTELLIGENCE When signals become an incident. Errorgap's heuristic engine watches for six trigger conditions and assembles the evidence into one Incident object — instead of leaving it scattered across separate views. SIX HEURISTICS · 60S CYCLE One object. All the evidence. High-volume error groups, uptime failures, error-rate spikes, latency anomalies, infrastructure saturation, and deploy correlations — when a condition fires, it becomes a first-class incident with a full evidence trail. Six heuristics, evaluated on a 60-second cycle Evidence timeline: error groups, releases, uptime checks, APM traces Open → Acknowledged → Resolved lifecycle Manual incidents for what the heuristics don't catch Explore incidents → AI INVESTIGATION From signals to a likely cause, automatically. The deterministic correlation panel runs the moment evidence loads — no configuration, no AI credit cost. It derives a likely cause, scores confidence, and surfaces the signals behind it. When you want prose, hit Summarize. DETERMINISTIC FIRST, AI ON DEMAND A confidence score, not a guess. Backtrace overlap, similar prior incidents, and time correlation feed a weighted confidence score from 10–90% — with the contributing signals shown. The AI summary is explicitly triggered, never automatic. Backtrace overlap, similar incidents, time correlation Confidence scored 10–90% with signal weights shown Optional AI summary — explicit trigger, never automatic MCP tools: explain_incident, find_likely_cause, propose_fix See an investigation → BUILT FOR THE STACK Every signal, framed in context. No screenshot pasting, no log-file digging. Errorgap connects the exception to the line, the line to the deploy, and the deploy to the person who can fix it — then watches availability and latency alongside. BACKTRACE & GROUPING The line. The frame. The fix. Every captured exception lands you on the offending source line with surrounding context and the full call stack. Same-signature errors collapse into one group with an occurrence count, sparkline, and the releases that triggered it. Source maps for JS/TS, debug symbols for Go & Java App / vendor / external frame filters Fingerprint grouping, merge/split, regression detection See a backtrace → LIVE LOGS Watch your production breathe. Stream errors, warnings, and structured logs straight from your runtime. Filter by level, source, or release — pause the stream, scrub backward, scrub forward. Live stream, sub-second latency Per-environment views (production / staging / dev) Aggregate view for capacity planning Open the live stream → UPTIME Know when your users can't reach you. HTTP, TCP, and ping checks sweep on configurable intervals. Status changes open incidents automatically, and the 90-day availability timeline shows every degraded window in context. HTTP / TCP / ping · configurable intervals SSL certificate expiry monitoring Uptime incidents feed the Incident engine See uptime monitoring → PERFORMANCE · APM Slow routes surface before users file tickets. Transaction timing from every web request and background job. Throughput, p95 latency, error rate, and DB time — with an Apdex score that tells you how users actually feel. Web requests and background jobs, side by side Apdex satisfaction with configurable threshold Latency anomalies feed the Incident engine See performance → SESSION REPLAY The session behind the failure. Browser session timelines attach to incidents as evidence — DOM snapshots at the moment of failure, ranked most-relevant first. Rage clicks, dead clicks, error events Most-relevant sessions surfaced per incident INFRASTRUCTURE CPU, memory, disk — per host. Fleet-wide CPU, memory, and disk health with per-host, per-volume, and per-process breakdowns across every cluster. Hosts, volumes, and processes views Saturation signals feed the Incident engine DEPLOY TRACKING Tie every error to a release. Record releases and Errorgap surfaces the first affected release for each error group — and correlates deploys with incidents. First-affected-release per error group Deploy correlation as an incident heuristic AI-NATIVE Give your AI agents production context. Errorgap exposes a Model Context Protocol server so Claude, Cursor, Copilot, and any MCP-compatible agent can query live production data — error groups, incidents, backtraces, uptime status, and proposed fixes — without exposing your browser session. claude_desktop_config.json { "mcpServers": { "errorgap": { "url": "https://app.errorgap.com/mcp", "headers": { "Authorization": "Bearer egmcp_…" }, "scopes": ["errors:read", "logs:read", "source:read"] } } } Scoped, redacted, per project. Tools: list/get errors, list/get incidents, explain incident, find likely cause, propose fix Per-project exposure toggles — six categories of data Org-level defaults with per-project overrides Regex-based redaction rules with live preview Scoped API keys, revocable from the Agent Access page MCP TOOLS ◆list_errors ◆get_error ◆list_incidents ◆get_incident ◆explain_incident ◆find_likely_cause ◆propose_fix ◆uptime_status Start free trial → Read the MCP docs INSTALL Three lines and you're shipping. Pick your runtime. The SDK does the rest — async-safe, fork-safe, and zero overhead in dev. node ruby python go java php Copy // 1. Install $ npm install @errorgap/sdk // 2. Initialize once at boot import errorgap from '@errorgap/sdk' errorgap.init({ key: process.env.ERRORGAP_KEY, env: process.env.NODE_ENV, release: process.env.GIT_SHA, }) // 3. That's it. Capture a handled error: errorgap.capture(err, { user: req.user.id }) INTEGRATIONS Wired into the tools you already use. Errorgap doesn't try to replace your issue tracker or your chat. It connects to them and stays out of the way. GitHub Auto-open issues GitLab Sync issue state Slack Channel routing Jira Ticket creation Webhook Custom endpoints PRICING Per-event pricing. No seat tax. Pay for what you capture, not who's logged in. Every plan includes every feature except the bits genuinely tied to enterprise compliance. FREE $0 /mo For solo devs and side projects. 50k events / mo 7-day retention 1 project 200 replays · 1 uptime monitor Email alerts AI investigation SSO Audit log Start free TEAM★ POPULAR $29 /mo For small teams shipping prod code. 500k events / mo 30-day retention Unlimited projects 5k replays · 10 uptime monitors AI investigation Slack + GitHub SSO Audit log Start trial BUSINESS $99 /mo For scaling orgs. 2M events / mo 90-day retention 25k replays · 50 uptime monitors SSO · SAML Audit log Priority support · 4h SLA Start trial ENTERPRISE Custom For regulated industries. Unlimited events Dedicated infrastructure Custom data residency Custom SLA Security review Solutions architect Talk to sales See full pricing & FAQ → Close the errorgap. Start free, no credit card. Turn scattered production signals into one investigable incident in under five minutes. Cancel anytime, keep your data. Start free trial → Talk to sales err rgap Incident intelligence for teams who'd rather fix the bug than find it. PRODUCT Incident Intelligence Backtrace Live logs Uptime monitoring Performance (APM) Session Replay Agent Access (MCP) Integrations How errorgap compares DEVELOPERS SDK docs API reference Changelog Status COMPANY About Careers Contact LEGAL Terms Privacy Security Subprocessors Acceptable Use Cookies © 2026 errorgap, inc. · incident intelligence --- # https://errorgap.com/acceptable-use err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → errorgap / Acceptable Use Policy Print / PDF · Download .txt TRUST ◇ Trust overview POLICIES § Terms of Service ◈ Privacy Policy ⛨ Security ⌁ Subprocessors ⊘ Acceptable Use ◔ Cookie Notice REQUESTS ⎙ DPA request ⚑ Vulnerability disclosure Security questions during a review? Email security@errorgap.com — we respond within one business day. TRUST · LEGAL Acceptable Use Policy VERSION 2026.2 EFFECTIVE JUN 1, 2026 LAST UPDATED JUN 1, 2026 What you may not do with Errorgap. This policy is part of, and incorporated into, the Terms of Service. 01 Scope This policy applies to everyone who uses Errorgap — account holders, their users, and any agents or tokens they issue. Violations may lead to suspension or termination under the Terms. 02 Prohibited use You may not use Errorgap to engage in or enable: Illegal, harmful, deceptive, defamatory, or infringing activity. Malware, credential theft, secret exfiltration, spam, or phishing. Distributing content you have no right to distribute. Using the service to attack, probe, or overload third parties. 03 Sensitive & regulated data Errorgap is built for operational telemetry, not regulated data. You are responsible for the telemetry you choose to send. DO NOT SEND Protected health information (PHI), full payment card numbers (PAN), government-issued IDs, children's data, or other regulated/sensitive data — unless expressly supported under a separate written agreement. Use redaction rules to keep secrets out of telemetry. 04 Platform integrity To keep the service reliable and isolated for everyone, you may not: Bypass or attempt to bypass rate limits, quotas, or authentication. Access, or attempt to access, another tenant's data. Reverse-engineer, resell, or make competitive use of the service. Conduct security testing or scanning without prior written authorization. 05 Enforcement We may investigate suspected violations and may suspend or terminate access to protect the service, our customers, or third parties. Where practical we give notice; where there is imminent risk we may act first. Contact ABUSE abuse@errorgap.com Report misuse of the service SECURITY security@errorgap.com Vulnerability reports LEGAL legal@errorgap.com Terms and notices SUPPORT support@errorgap.com Product and account help § Change history 2026.2 Jun 1, 2026 Initial published Acceptable Use Policy. ON THIS PAGE Scope Prohibited use Sensitive & regulated data Platform integrity Enforcement Contact err rgap Incident intelligence for teams who'd rather fix the bug than find it. PRODUCT Incident Intelligence Backtrace Live logs Uptime monitoring Performance (APM) Session Replay Agent Access (MCP) Integrations How errorgap compares DEVELOPERS SDK docs API reference Changelog Status COMPANY About Careers Contact LEGAL Terms Privacy Security Subprocessors Acceptable Use Cookies © 2026 errorgap, inc. · incident intelligence --- # https://errorgap.com/company/about err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → ABOUT We’d rather you fix the bug than spend the afternoon finding it. errorgap is project telemetry for teams who treat an incident as something to resolve, not reconstruct. We correlate scattered production signals into one investigable incident — with a likely cause — in under five minutes. THE GAP FINDING An error spikes. A request slows. A check goes red. A deploy lands. Each signal lives in its own tab, on its own timeline, in its own tool — and the on-call engineer becomes the integration layer, stitching them together by hand at the worst possible moment. → FIXING errorgap correlates errors, slow requests, uptime, and deploys into a single incident with a ranked likely cause and an evidence timeline. The reconstruction is already done. What’s left is the part that matters. OPERATING PRINCIPLES How we decide what to build. Six commitments we hold ourselves to. They’re the same ones the trust and security pages are written against. Honest status on every claim ⛨ Nothing reads as a promise we haven’t kept. Features in progress say so; what we don’t do, we say we don’t do. Per-event pricing, no seat tax ◈ You pay for the telemetry you send, not for how many engineers open the dashboard. Adding a teammate is free. Your data, minimized and redacted ⌁ Redaction runs at ingest, before storage. We keep the least we can and delete on a schedule you can see. Fix the bug, don’t find it ⚑ Every surface is built to shorten the distance between a signal firing and a root cause you can act on. Deterministic before AI ◇ Likely-cause and confidence scoring are rule-based and inspectable. The AI summary is an explicit, optional step — never automatic. One product, run by us ⎙ A managed service with predictable data controls — no infrastructure for you to operate, patch, or babysit. WHAT WE ARE, WHAT WE AREN’T WE ARE A small, early team shipping in the open. Focused on the correlate-and-investigate loop. Plain-spoken about what works and what’s in progress. WE AREN’T An everything-platform with a feature for every logo. Going to invent customer counts or funding milestones here. Interested in dashboards nobody acts on. errorgap, inc. — incident intelligence. err rgap Incident intelligence for teams who'd rather fix the bug than find it. PRODUCT Incident Intelligence Backtrace Live logs Uptime monitoring Performance (APM) Session Replay Agent Access (MCP) Integrations How errorgap compares DEVELOPERS SDK docs API reference Changelog Status COMPANY About Careers Contact LEGAL Terms Privacy Security Subprocessors Acceptable Use Cookies © 2026 errorgap, inc. · incident intelligence --- # https://errorgap.com/company/careers err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → CAREERS We’re small, early, and deliberate about who joins. No growth-for-its-own-sake hiring. When we add someone, it’s because there’s a clear gap and the work is real. Here’s how the team actually works. Small surface, deep focus ⌁ Few people, one product, no busywork. You own real surface area and ship it end to end. Write it down, plainly ◈ We default to honest, jargon-free writing — in the product, in docs, and with each other. Trust over theater ⛨ No vanity metrics, no demo-driven roadmaps. We build the thing that makes the claim true. Async, low-meeting ◇ Long blocks of focus, decisions in writing, and a strong bias toward shipping over scheduling. OPEN ROLES What we’re hiring for. No open roles right now. But we read every intro. If you’d be a fit for a team like ours — tell us what you’d want to own and why errorgap. jobs@errorgap.com We reply to thoughtful intros within one business day. err rgap Incident intelligence for teams who'd rather fix the bug than find it. PRODUCT Incident Intelligence Backtrace Live logs Uptime monitoring Performance (APM) Session Replay Agent Access (MCP) Integrations How errorgap compares DEVELOPERS SDK docs API reference Changelog Status COMPANY About Careers Contact LEGAL Terms Privacy Security Subprocessors Acceptable Use Cookies © 2026 errorgap, inc. · incident intelligence --- # https://errorgap.com/company/contact err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → CONTACT Reach the right inbox. No forms, no routing maze. Pick the address that matches what you need — we respond within one business day. Security ⛨ Report a vulnerability or request our disclosure policy. Cross-linked from the Security page. security@errorgap.com → /security Privacy & DPA ◈ Data requests, the Data Processing Addendum, and subprocessor questions. privacy@errorgap.com → /privacy · /trust Sales & general ⌁ Pricing, evaluations, or anything that doesn’t fit a box above. hello@errorgap.com → proposed — confirm address Every inbox is monitored by a person. We respond within one business day — the same promise on the trust pages. err rgap Incident intelligence for teams who'd rather fix the bug than find it. PRODUCT Incident Intelligence Backtrace Live logs Uptime monitoring Performance (APM) Session Replay Agent Access (MCP) Integrations How errorgap compares DEVELOPERS SDK docs API reference Changelog Status COMPANY About Careers Contact LEGAL Terms Privacy Security Subprocessors Acceptable Use Cookies © 2026 errorgap, inc. · incident intelligence --- # https://errorgap.com/compare err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → COMPARE Most tools show you one signal. errorgap correlates errors, logs, transactions, uptime checks, and deploys into a single incident, then ranks a likely cause and shows the evidence behind it. This page compares that approach against the categories of tool it replaces or sits beside — by capability, not by brand. Start free trial → Browse the product VS. STANDALONE ERROR TRACKERS An error is one signal. An incident needs five. Error trackers stop at the exception. errorgap keeps the exception and correlates it with the logs around it, the transaction that slowed, the check that failed, and the deploy that shipped — then names a likely cause and ranks it. Same grouping and stack-frame quality you expect from a tracker Plus logs, APM, uptime, and deploys on the same incident object A ranked likely cause, with the evidence it was derived from See Incident Intelligence → Errors grouped by fingerprint Logs agent-streamed Transactions per-route timing Uptime checks every 10s Deploys release markers ONE INCIDENT Likely cause, ranked — with its evidence attached. VS. FULL OBSERVABILITY SUITES Correlation without the rollout. Suites can correlate too, once you have finished the migration, agreed the seat count, and standardised the collector. errorgap is one JSON envelope and a key. You pay for captured events, not for the people who look at them. Priced per captured event — seats are unlimited and free Install in minutes: one endpoint, one envelope format 20+ SDKs, plus a plain HTTP API for anything not covered See pricing → PRICING UNIT captured event SEAT COST none — unlimited users TIME TO FIRST ERROR minutes WIRE FORMAT one JSON envelope SDKS 20+ · plus HTTP API COLLECTOR TO OPERATE none PAST YOUR QUOTA repeats sampled, never billed VS. LOG PLATFORMS Logs as evidence, not as a search box. A query language is only useful once you know what to query. errorgap attaches the log window around a failure to the incident itself — duplicates grouped, timestamps stripped — so the relevant lines are already on the page. The log window around each error, attached automatically Aggregate view collapses 412 identical lines into one Full stream, list, and aggregate views when you do want to dig See Live logs → INCIDENT TypeError · checkout.submit 14:02:11 web.1 POST /checkout/submit 14:02:11 web.1 pool: acquiring connection (waiters=18) 14:02:12 web.1 timeout after 5000ms · pool exhausted 14:02:12 web.1 TypeError: cannot read 'id' of undefined 14:02:12 web.1 status=500 duration=5031ms Log window attached to the incident · 5 of 1,204 lines shown VS. UPTIME-ONLY MONITORS A failed check that explains itself. Knowing the endpoint is down is the first thirty seconds of the job. When an errorgap check fails, it opens an incident that already carries the errors firing behind it and the release that preceded them. HTTP(S), TCP, and ping checks on a 10-second sweep Consecutive failures open and close incidents automatically 90-day availability timeline per monitor See Uptime monitoring → 01 Check fails api.example.com/health returns 503 twice in a row. 02 Incident opens Severity critical. No one has to acknowledge a page first. 03 Evidence attaches The 4,100 errors firing behind the check, and release v2.14.0 from 11 minutes earlier. 04 Likely cause ranked “Connection pool exhausted after v2.14.0” — with the frames and log lines it was read from. CAPABILITY MATRIX What each category actually covers. Typical coverage per category of tool. Individual products vary; where a category commonly ships a partial or add-on version of a capability, it is marked as partial. errorgap capability coverage compared with error trackers, APM suites, log platforms, and uptime monitors CAPABILITY ERRORGAP ERROR TRACKER APM SUITE LOG PLATFORM UPTIME MONITOR Correlated incidents across signals ✓ Included — Not offered partial — Not offered — Not offered Ranked likely cause with evidence ✓ Included — Not offered — Not offered — Not offered — Not offered Error grouping and stack frames ✓ Included ✓ Included partial — Not offered — Not offered Live log streaming ✓ Included — Not offered partial ✓ Included — Not offered Uptime checks ✓ Included — Not offered partial — Not offered ✓ Included Per-transaction timing (APM) ✓ Included — Not offered ✓ Included — Not offered — Not offered Distributed tracing across services — Not offered — Not offered ✓ Included — Not offered — Not offered Session replay ✓ Included partial partial — Not offered — Not offered Custom metrics and dashboards — Not offered — Not offered ✓ Included partial — Not offered MCP access for AI agents ✓ Included — Not offered — Not offered — Not offered — Not offered Pricing model per event per event per host + seat per GB ingested per monitor Time to first signal minutes minutes days hours minutes ✓ included — not offered partial · common as an add-on or a subset LIMITATIONS What errorgap doesn’t do. Three things it is worth knowing before you start a trial. errorgap is a managed service. We run it, you send events. There is no collector to keep alive — which also means the data sits with us, under the terms on our Trust page. It is not a metrics warehouse. No custom metric ingestion, no PromQL, no long-range business dashboards. errorgap watches failures. Send your revenue graphs somewhere else. It does not do distributed tracing. APM is per-transaction timing with DB, view, and external breakdowns. If you need a span graph stitched across a dozen services, an observability suite is the right tool. Close the errorgap. Start free, no credit card. Turn scattered production signals into one investigable incident in under five minutes. Cancel anytime, keep your data. Start free trial → Talk to sales err rgap Incident intelligence for teams who'd rather fix the bug than find it. PRODUCT Incident Intelligence Backtrace Live logs Uptime monitoring Performance (APM) Session Replay Agent Access (MCP) Integrations How errorgap compares DEVELOPERS SDK docs API reference Changelog Status COMPANY About Careers Contact LEGAL Terms Privacy Security Subprocessors Acceptable Use Cookies © 2026 errorgap, inc. · incident intelligence --- # https://errorgap.com/cookies err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → errorgap / Cookie Notice Print / PDF · Download .txt TRUST ◇ Trust overview POLICIES § Terms of Service ◈ Privacy Policy ⛨ Security ⌁ Subprocessors ⊘ Acceptable Use ◔ Cookie Notice REQUESTS ⎙ DPA request ⚑ Vulnerability disclosure Security questions during a review? Email security@errorgap.com — we respond within one business day. TRUST · PRIVACY Cookie Notice VERSION 2026.2 EFFECTIVE JUN 1, 2026 LAST UPDATED JUN 1, 2026 The cookies and local storage Errorgap uses, what they're for, and how to control them. We use a small set of first-party cookies and no third-party advertising trackers. 01 Overview Cookies and browser local storage let us keep you signed in, remember your preferences, and understand aggregate product usage. We do not use third-party advertising or cross-site tracking cookies. 02 Essential storage Required for the dashboard to work. These cannot be disabled without breaking sign-in. NAME PURPOSE STATUS Session token Keeps you signed in securely between requests. Essential CSRF / security Protects against cross-site request forgery. Essential 03 Preferences Remember choices you make so the product behaves the way you left it. NAME PURPOSE STATUS Theme Stores your dark/light appearance preference. Preference Last project Returns you to the project you were last viewing. Preference 04 Analytics First-party, aggregate usage measurement to improve reliability and the product. No advertising, no cross-site tracking. NAME PURPOSE STATUS Product analytics Aggregate, de-identified feature usage. Opt-out Advertising We set no third-party ad or tracking cookies. None 05 Your choices You control non-essential storage. You can clear or block cookies in your browser settings, and opt out of analytics from your account appearance settings. Blocking essential cookies will prevent sign-in. For data-subject requests, contact privacy@errorgap.com. Contact PRIVACY privacy@errorgap.com Cookie & data questions SECURITY security@errorgap.com Vulnerability reports LEGAL legal@errorgap.com Notices SUPPORT support@errorgap.com Product and account help § Change history 2026.2 Jun 1, 2026 Initial published Cookie Notice. ON THIS PAGE Overview Essential storage Preferences Analytics Your choices Contact err rgap Incident intelligence for teams who'd rather fix the bug than find it. PRODUCT Incident Intelligence Backtrace Live logs Uptime monitoring Performance (APM) Session Replay Agent Access (MCP) Integrations How errorgap compares DEVELOPERS SDK docs API reference Changelog Status COMPANY About Careers Contact LEGAL Terms Privacy Security Subprocessors Acceptable Use Cookies © 2026 errorgap, inc. · incident intelligence --- # https://errorgap.com/developers err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → DEVELOPERS Wire up errorgap, then get out of your editor. SDKs for 20+ stacks send the same JSON envelope to one small, stable ingestion API. Drop in the library, ship a test error, and get back to the code that matters. SDK docs ⌁ Install in Node, Python, Go, Ruby, PHP, mobile, and more — 20+ stacks, one envelope. View SDKs → API reference ⎙ The ingestion API: one header, one JSON envelope. Most developers never call it directly. Read the reference → Changelog ◇ What shipped, dated, in plain language. No marketing gloss. See what shipped → Status ◆ Live platform status and 90-day uptime history, on its own page. Open status → Agent access (MCP) ⟢ Give AI agents read-only production context through the Model Context Protocol. Learn about MCP → Quickstart ⚑ Five-minute install walkthrough — drop in the SDK, send a test error, see it land. Start the walkthrough → err rgap Incident intelligence for teams who'd rather fix the bug than find it. PRODUCT Incident Intelligence Backtrace Live logs Uptime monitoring Performance (APM) Session Replay Agent Access (MCP) Integrations How errorgap compares DEVELOPERS SDK docs API reference Changelog Status COMPANY About Careers Contact LEGAL Terms Privacy Security Subprocessors Acceptable Use Cookies © 2026 errorgap, inc. · incident intelligence --- # https://errorgap.com/developers/api err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → API REFERENCE One header. One JSON envelope. Most developers never call this directly — the SDK does it for you. But the whole contract is small, so here it is, hand-authored and complete. ON THIS PAGE Base URL & auth Endpoints Notice envelope Sensitive-value filtering Responses Verify with curl Release tracking BASE URL & AUTH Base URL & authentication All requests are POST to your project's ingest endpoint. Authenticate every request with a single project-key header. HTTP ⧉ Copy POST https:///api/projects/{project_slug}/notices x-errorgap-project-key: content-type: application/json user-agent: errorgap-{lang}/{version} The only header the API reads is x-errorgap-project-key. Note that X-Errorgap-Api-Key is not accepted. Set a descriptive User-Agent so requests are attributable in logs. ENDPOINTS Endpoints PURPOSE METHOD PATH Errors POST /api/projects/{project_slug}/notices APM transactions POST /api/projects/{project_slug}/transactions Session replay POST /api/projects/{project_slug}/sessions Release tracking optional POST /api/projects/{project_slug}/releases NOTICE ENVELOPE Notice envelope The body sent to /notices. One envelope can carry multiple errors (e.g. an error chain). JSON ⧉ Copy { "received_at": "2026-06-23T10:14:05Z", "errors": [ { "type": "TypeError", "message": "Cannot read properties of undefined (reading 'id')", "backtrace": [ { "file": "app/checkout.js", "line": 42, "function": "applyCoupon", "in_app": true } ] } ], "context": { "notifier": "errorgap-node", "notifier_version": "0.1.0", "release": "a1b2c3d", "environment": "production" }, "params": { "coupon": "[FILTERED]" } } REQUIRED received_at — ISO-8601 timestamp errors[] — each with type + message context.notifier context.notifier_version OPTIONAL project_id backtrace[].in_app context.release · context.root_directory environment · session · params SENSITIVE VALUES Sensitive-value filtering SDKs mask sensitive values before they leave the host. The default key list is matched as a case-insensitive substring; any match has its value replaced with "[FILTERED]". Filtering applies to params only. DEFAULT MASK LIST ⧉ Copy password token secret api_key authorization cookie # substring match, case-insensitive — "x_api_key" also matches "api_key" RESPONSES Responses CODE MEANING BODY 201 Accepted JSON with group_id 202 Accepted, sampled Accepted but rate-limited or sampled 401 Unauthorized Bad or missing project key Release tracking additionally returns 200 (release already recorded) and 403 (key lacks release scope). VERIFY Verify with curl Send a test error with nothing but curl. A 201 with a group_id means ingestion works. BASH ⧉ Copy curl -X POST https:///api/projects/$SLUG/notices \ -H "x-errorgap-project-key: $KEY" \ -H "content-type: application/json" \ -d '{"received_at":"2026-06-23T10:14:05Z", "errors":[{"type":"TestError","message":"hello from curl"}], "context":{"notifier":"curl","notifier_version":"0"}}' RELEASE TRACKING Release tracking optional Post a release so errors can be attributed to the deploy that introduced them. JSON ⧉ Copy { "version": "a1b2c3d", "environment": "production", "deployed_at": "2026-06-23T10:00:00Z" } CODE MEANING 201 Release recorded 200 Release already existed 403 Key lacks release scope err rgap Incident intelligence for teams who'd rather fix the bug than find it. PRODUCT Incident Intelligence Backtrace Live logs Uptime monitoring Performance (APM) Session Replay Agent Access (MCP) Integrations How errorgap compares DEVELOPERS SDK docs API reference Changelog Status COMPANY About Careers Contact LEGAL Terms Privacy Security Subprocessors Acceptable Use Cookies © 2026 errorgap, inc. · incident intelligence --- # https://errorgap.com/developers/changelog err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → CHANGELOG What shipped, and when. Honest, dated, no marketing gloss. Each entry is a real release — when there's nothing to report, this page says so. 2026-06-16 SDKS SHIPPED Tier 5 SDKs shipped. Rust, Deno, and Bun reach v0.1.0. errorgap now covers 20+ stacks. › Rust — errorgap on crates.io (Tower layer + capture macro) › Deno and Bun — native runtime modules, no build step 2026-06-15 SDKS SHIPPED Mobile SDKs shipped. Swift (iOS/macOS), Android (Kotlin), React Native, and Flutter — all v0.1.0, errors-only. 2026-06-15 SDKS SHIPPED Enterprise stacks shipped. JVM and managed runtimes land together. › Java / Kotlin / Scala — core + Spring Boot starter › .NET — Errorgap + Errorgap.AspNetCore › Elixir / Phoenix 2026-06-15 SDKS SHIPPED Tier 2 SDKs shipped. PHP (framework-agnostic core), Laravel (service provider), and Go (net/http wrapper). 2026-06-15 SDKS SHIPPED Tier 1 SDKs shipped. The first three: Node.js, Python, and browser JS — the last with a React error boundary. › Node.js — @errorgap/node › Python — errorgap on PyPI › Browser — @errorgap/browser with React ErrorBoundary err rgap Incident intelligence for teams who'd rather fix the bug than find it. PRODUCT Incident Intelligence Backtrace Live logs Uptime monitoring Performance (APM) Session Replay Agent Access (MCP) Integrations How errorgap compares DEVELOPERS SDK docs API reference Changelog Status COMPANY About Careers Contact LEGAL Terms Privacy Security Subprocessors Acceptable Use Cookies © 2026 errorgap, inc. · incident intelligence --- # https://errorgap.com/developers/sdks err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → SDKS One JSON envelope. Twenty-odd ways to send it. Errors-only in v1 today; APM and session replay land per-SDK where noted. Every library ships the same install-and-verify curl, so you can confirm ingestion before writing a line of app code. Server & backend 10 SDKs Node.js v0.1.2 @errorgap/node · npm Express · Fastify Auto-instrument uncaught exceptions and unhandled rejections. View guide → Source ↗ Package ↗ Python v0.1.1 errorgap · PyPI Django · Flask · FastAPI WSGI/ASGI middleware plus a manual capture API. View guide → Source ↗ Package ↗ Ruby v0.5.0 errorgap-ruby Rails · Rack · Sinatra Rack middleware; Rails railtie wires itself in. View guide → Source ↗ Package ↗ PHP v0.3.0 errorgap/errorgap · Packagist Symfony · Slim · plain Error + exception handlers, framework-agnostic core. View guide → Source ↗ Package ↗ Laravel v0.2.0 errorgap/laravel · Packagist Laravel Service provider + exception-handler integration. View guide → Source ↗ Package ↗ Go v0.1.0 errorgap-go net/http Handler wrapper and a manual Notify() call. View guide → Source ↗ Package ↗ Java · Kotlin · Scala v0.2.0 com.errorgap:errorgap-core · Maven Central Spring Boot starter JVM core plus a Spring Boot auto-configuration starter. View guide → Source ↗ Package ↗ .NET v0.2.0 Errorgap · Errorgap.AspNetCore · NuGet ASP.NET Core Middleware for ASP.NET Core; core works anywhere. View guide → Source ↗ Package ↗ Elixir v0.2.0 errorgap · Hex Phoenix Plug + Phoenix error reporter. View guide → Source ↗ Package ↗ Rust v0.2.0 errorgap · crates.io Axum · Actix · Tonic Tower layer plus a manual capture macro. View guide → Source ↗ Package ↗ Browser & JS runtimes 5 SDKs Browser / React v0.1.1 @errorgap/browser · npm React ErrorBoundary window.onerror + unhandledrejection, ships a React error boundary. View guide → Source ↗ Package ↗ Deno v0.2.0 errorgap-deno Native Deno module — no build step. View guide → Source ↗ Package ↗ Bun v0.2.0 errorgap-bun Bun-native runtime hooks. View guide → Source ↗ Package ↗ Nuxt v0.1.0 @errorgap/nuxt · npm Vue · Nitro One module for client Vue errors and server Nitro errors. View guide → Source ↗ Package ↗ Next.js v0.1.0 @errorgap/nextjs · npm App Router Client browser errors and server onRequestError in one package. View guide → Source ↗ Package ↗ Mobile 5 SDKs iOS · macOS (Swift) v0.2.0 Errorgap · SwiftPM NSException + Swift error capture. View guide → Source ↗ Android (Kotlin) v0.2.0 com.errorgap:errorgap-android · Maven Central Uncaught-exception handler, ANR-aware. View guide → Source ↗ Package ↗ React Native v0.2.0 @errorgap/react-native · npm JS + native crash bridge in one package. View guide → Source ↗ Package ↗ Flutter v0.2.0 errorgap · pub.dev FlutterError + zone capture. View guide → Source ↗ Package ↗ Unity PLANNED com.errorgap.unity C# exception capture for runtime builds. Not yet available CMS & other 2 SDKs WordPress v0.2.0 errorgap-wordpress · plugin Drop-in plugin; captures PHP fatals and notices. View guide → Source ↗ { } Anything else v— Plain HTTP One POST with the JSON envelope — see the API reference. View guide → err rgap Incident intelligence for teams who'd rather fix the bug than find it. PRODUCT Incident Intelligence Backtrace Live logs Uptime monitoring Performance (APM) Session Replay Agent Access (MCP) Integrations How errorgap compares DEVELOPERS SDK docs API reference Changelog Status COMPANY About Careers Contact LEGAL Terms Privacy Security Subprocessors Acceptable Use Cookies © 2026 errorgap, inc. · incident intelligence --- # https://errorgap.com/developers/sdks/android err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → MOBILE SDK Error monitoring for Android A Kotlin SDK that installs an uncaught-exception handler in `Application.onCreate()`. Device metadata is caller-supplied, so the library ships no platform-specific dependencies. Frameworks Android Requires Android API 24+ · JDK 17 to build Package com.errorgap:errorgap-android Source ↗ Package ↗ Agent guide ↗ ON THIS PAGE Install Configure Trigger a test error Verify INSTALL Install KOTLIN ⧉ Copy dependencies { implementation("com.errorgap:errorgap-android:0.2.0") } CONFIGURE Configure In Application.onCreate(), before anything else runs: KOTLIN ⧉ Copy class App : Application() { override fun onCreate() { super.onCreate() Errorgap.init(ErrorgapConfiguration( endpoint = BuildConfig.ERRORGAP_ENDPOINT, projectSlug = BuildConfig.ERRORGAP_PROJECT_SLUG, apiKey = BuildConfig.ERRORGAP_API_KEY, environment = if (BuildConfig.DEBUG) "development" else "production", release = BuildConfig.VERSION_NAME, deviceInfo = mapOf( "os_name" to "Android", "os_version" to Build.VERSION.RELEASE, "device_model" to Build.MODEL, "app_version" to BuildConfig.VERSION_NAME, ), )) } } Expose the credentials through BuildConfig fields (from Gradle properties or the environment) rather than hardcoding them. The SDK installs a Thread.setDefaultUncaughtExceptionHandler. TRIGGER A TEST ERROR Trigger a test error KOTLIN ⧉ Copy button.setOnClickListener { throw RuntimeException("Errorgap test error") } VERIFY Verify the connection Confirm your key and endpoint reach errorgap before wiring anything else — send one event straight to the ingestion API: BASH ⧉ Copy curl -sS -X POST "$ERRORGAP_ENDPOINT/api/projects/$ERRORGAP_PROJECT_SLUG/notices" \ -H "content-type: application/json" \ -H "x-errorgap-project-key: $ERRORGAP_API_KEY" \ -d '{"errors":[{"type":"ErrorgapInstallTest","message":"Errorgap install verification"}]}' A 201 with a group_id means ingestion works (202 = received but sampled; 401 = wrong key). Then trigger the test error above through the SDK. Your onboarding screen's Verify step checks the stack off automatically once the first event lands — it polls every three seconds. Next: the full ingestion API, or browse every SDK. err rgap Incident intelligence for teams who'd rather fix the bug than find it. PRODUCT Incident Intelligence Backtrace Live logs Uptime monitoring Performance (APM) Session Replay Agent Access (MCP) Integrations How errorgap compares DEVELOPERS SDK docs API reference Changelog Status COMPANY About Careers Contact LEGAL Terms Privacy Security Subprocessors Acceptable Use Cookies © 2026 errorgap, inc. · incident intelligence --- # https://errorgap.com/developers/sdks/browser err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → BROWSER SDK Error monitoring for the browser One package for any front-end — React, Vue, Angular, Svelte, or plain JS. It hooks global errors and unhandled rejections, and ships a React error boundary for component-tree failures. Frameworks React · Vue · Angular · Svelte · plain JS Requires any modern browser Package @errorgap/browser Source ↗ Package ↗ Agent guide ↗ ON THIS PAGE Install Configure Trigger a test error Verify INSTALL Install SH ⧉ Copy npm install @errorgap/browser Or drop it in via CDN — the UMD build exposes window.Errorgap: HTML ⧉ Copy CONFIGURE Configure Import as early as possible in your entry point. The API key is public client-side, so scope it to a single project and rely on server-side redaction for anything sensitive. TS ⧉ Copy import { Errorgap } from "@errorgap/browser"; Errorgap.init({ endpoint: "https://your-endpoint", projectSlug: "your-project", apiKey: import.meta.env.VITE_ERRORGAP_API_KEY, environment: import.meta.env.MODE, release: __APP_VERSION__, }); init hooks window.error and window.unhandledrejection automatically. React error boundary TSX ⧉ Copy import { ErrorgapBoundary } from "@errorgap/browser/react"; export function App() { return ( Something went wrong.

}>
); } TRIGGER A TEST ERROR Trigger a test error Throw once — in React, wire it to a temporary button: TS ⧉ Copy throw new Error("Errorgap test error"); VERIFY Verify the connection Confirm your key and endpoint reach errorgap before wiring anything else — send one event straight to the ingestion API: BASH ⧉ Copy curl -sS -X POST "$ERRORGAP_ENDPOINT/api/projects/$ERRORGAP_PROJECT_SLUG/notices" \ -H "content-type: application/json" \ -H "x-errorgap-project-key: $ERRORGAP_API_KEY" \ -d '{"errors":[{"type":"ErrorgapInstallTest","message":"Errorgap install verification"}]}' A 201 with a group_id means ingestion works (202 = received but sampled; 401 = wrong key). Then trigger the test error above through the SDK. Your onboarding screen's Verify step checks the stack off automatically once the first event lands — it polls every three seconds. Next: the full ingestion API, or browse every SDK. err rgap Incident intelligence for teams who'd rather fix the bug than find it. PRODUCT Incident Intelligence Backtrace Live logs Uptime monitoring Performance (APM) Session Replay Agent Access (MCP) Integrations How errorgap compares DEVELOPERS SDK docs API reference Changelog Status COMPANY About Careers Contact LEGAL Terms Privacy Security Subprocessors Acceptable Use Cookies © 2026 errorgap, inc. · incident intelligence --- # https://errorgap.com/developers/sdks/bun err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → BROWSER SDK Error monitoring for Bun A Bun-native package shipped as TypeScript source — Bun loads it directly, no build step. It hooks uncaught exceptions and unhandled rejections on the process. Frameworks Bun runtime Requires Bun 1.0+ Package @errorgap/bun Source ↗ Package ↗ Agent guide ↗ ON THIS PAGE Install Configure Trigger a test error Verify INSTALL Install SH ⧉ Copy bun add @errorgap/bun CONFIGURE Configure In your entry file (e.g. index.ts): TS ⧉ Copy import { Errorgap } from "@errorgap/bun"; Errorgap.init({ endpoint: process.env.ERRORGAP_ENDPOINT, projectSlug: process.env.ERRORGAP_PROJECT_SLUG, apiKey: process.env.ERRORGAP_API_KEY, environment: process.env.NODE_ENV ?? "production", }); init hooks process.uncaughtException and process.unhandledRejection. Keep the key in an environment variable (or your framework's secret store) — never commit it to source control. TRIGGER A TEST ERROR Trigger a test error TS ⧉ Copy throw new Error("Errorgap test error"); VERIFY Verify the connection Confirm your key and endpoint reach errorgap before wiring anything else — send one event straight to the ingestion API: BASH ⧉ Copy curl -sS -X POST "$ERRORGAP_ENDPOINT/api/projects/$ERRORGAP_PROJECT_SLUG/notices" \ -H "content-type: application/json" \ -H "x-errorgap-project-key: $ERRORGAP_API_KEY" \ -d '{"errors":[{"type":"ErrorgapInstallTest","message":"Errorgap install verification"}]}' A 201 with a group_id means ingestion works (202 = received but sampled; 401 = wrong key). Then trigger the test error above through the SDK. Your onboarding screen's Verify step checks the stack off automatically once the first event lands — it polls every three seconds. Next: the full ingestion API, or browse every SDK. err rgap Incident intelligence for teams who'd rather fix the bug than find it. PRODUCT Incident Intelligence Backtrace Live logs Uptime monitoring Performance (APM) Session Replay Agent Access (MCP) Integrations How errorgap compares DEVELOPERS SDK docs API reference Changelog Status COMPANY About Careers Contact LEGAL Terms Privacy Security Subprocessors Acceptable Use Cookies © 2026 errorgap, inc. · incident intelligence --- # https://errorgap.com/developers/sdks/deno err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → BROWSER SDK Error monitoring for Deno A native Deno module — import from JSR, no build step. It hooks global errors and unhandled rejections and reads its config from the environment. Frameworks Deno runtime Requires Deno 1.40+ Package @errorgap/deno Source ↗ Package ↗ Agent guide ↗ ON THIS PAGE Install Configure Trigger a test error Verify INSTALL Install Import directly from JSR, or add it to your import map: SH ⧉ Copy deno add jsr:@errorgap/deno CONFIGURE Configure TS ⧉ Copy import { Errorgap } from "@errorgap/deno"; Errorgap.init({ endpoint: Deno.env.get("ERRORGAP_ENDPOINT")!, projectSlug: Deno.env.get("ERRORGAP_PROJECT_SLUG")!, apiKey: Deno.env.get("ERRORGAP_API_KEY"), }); init hooks globalThis.error and globalThis.unhandledrejection. Run with --allow-net= and --allow-env. Keep the key in an environment variable (or your framework's secret store) — never commit it to source control. TRIGGER A TEST ERROR Trigger a test error TS ⧉ Copy throw new Error("Errorgap test error"); VERIFY Verify the connection Confirm your key and endpoint reach errorgap before wiring anything else — send one event straight to the ingestion API: BASH ⧉ Copy curl -sS -X POST "$ERRORGAP_ENDPOINT/api/projects/$ERRORGAP_PROJECT_SLUG/notices" \ -H "content-type: application/json" \ -H "x-errorgap-project-key: $ERRORGAP_API_KEY" \ -d '{"errors":[{"type":"ErrorgapInstallTest","message":"Errorgap install verification"}]}' A 201 with a group_id means ingestion works (202 = received but sampled; 401 = wrong key). Then trigger the test error above through the SDK. Your onboarding screen's Verify step checks the stack off automatically once the first event lands — it polls every three seconds. Next: the full ingestion API, or browse every SDK. err rgap Incident intelligence for teams who'd rather fix the bug than find it. PRODUCT Incident Intelligence Backtrace Live logs Uptime monitoring Performance (APM) Session Replay Agent Access (MCP) Integrations How errorgap compares DEVELOPERS SDK docs API reference Changelog Status COMPANY About Careers Contact LEGAL Terms Privacy Security Subprocessors Acceptable Use Cookies © 2026 errorgap, inc. · incident intelligence --- # https://errorgap.com/developers/sdks/dotnet err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → SERVER SDK Error monitoring for .NET Middleware for ASP.NET Core that reports thrown exceptions and re-throws so your normal pipeline still renders the response. The core works anywhere, hooking unhandled and unobserved-task exceptions. Frameworks ASP.NET Core · plain .NET Requires .NET 8+ Package Errorgap.AspNetCore Source ↗ Package ↗ Agent guide ↗ ON THIS PAGE Install Configure Trigger a test error Verify INSTALL Install SH ⧉ Copy dotnet add package Errorgap.AspNetCore For non-web apps, depend on Errorgap directly. CONFIGURE Configure ASP.NET Core In Program.cs, register the service and add the middleware first so it sees all downstream exceptions: CSHARP ⧉ Copy using Errorgap.AspNetCore; var builder = WebApplication.CreateBuilder(args); builder.Services.AddErrorgap(cfg => { cfg.Endpoint = builder.Configuration["ERRORGAP_ENDPOINT"]!; cfg.ProjectSlug = builder.Configuration["ERRORGAP_PROJECT_SLUG"]!; cfg.ApiKey = builder.Configuration["ERRORGAP_API_KEY"]; }); var app = builder.Build(); app.UseErrorgap(); // first in the pipeline app.Run(); Plain .NET CSHARP ⧉ Copy using Errorgap; ErrorgapSdk.Init(new ErrorgapConfiguration { Endpoint = Environment.GetEnvironmentVariable("ERRORGAP_ENDPOINT")!, ProjectSlug = Environment.GetEnvironmentVariable("ERRORGAP_PROJECT_SLUG")!, ApiKey = Environment.GetEnvironmentVariable("ERRORGAP_API_KEY"), }); Init installs AppDomain.UnhandledException and TaskScheduler.UnobservedTaskException hooks. Keep the key in an environment variable (or your framework's secret store) — never commit it to source control. TRIGGER A TEST ERROR Trigger a test error CSHARP ⧉ Copy app.MapGet("/errorgap-test", () => { throw new InvalidOperationException("Errorgap test error"); }); VERIFY Verify the connection Confirm your key and endpoint reach errorgap before wiring anything else — send one event straight to the ingestion API: BASH ⧉ Copy curl -sS -X POST "$ERRORGAP_ENDPOINT/api/projects/$ERRORGAP_PROJECT_SLUG/notices" \ -H "content-type: application/json" \ -H "x-errorgap-project-key: $ERRORGAP_API_KEY" \ -d '{"errors":[{"type":"ErrorgapInstallTest","message":"Errorgap install verification"}]}' A 201 with a group_id means ingestion works (202 = received but sampled; 401 = wrong key). Then trigger the test error above through the SDK. Your onboarding screen's Verify step checks the stack off automatically once the first event lands — it polls every three seconds. Next: the full ingestion API, or browse every SDK. err rgap Incident intelligence for teams who'd rather fix the bug than find it. PRODUCT Incident Intelligence Backtrace Live logs Uptime monitoring Performance (APM) Session Replay Agent Access (MCP) Integrations How errorgap compares DEVELOPERS SDK docs API reference Changelog Status COMPANY About Careers Contact LEGAL Terms Privacy Security Subprocessors Acceptable Use Cookies © 2026 errorgap, inc. · incident intelligence --- # https://errorgap.com/developers/sdks/elixir err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → SERVER SDK Error monitoring for Elixir & Phoenix A client that starts under your supervision tree and a Phoenix error reporter. Wire `handle_errors/2` once and unhandled request errors flow to errorgap. Frameworks Phoenix · Plug Requires Elixir 1.15+ · OTP 26+ Package errorgap Source ↗ Package ↗ Agent guide ↗ ON THIS PAGE Install Configure Trigger a test error Verify INSTALL Install Add the dependency to mix.exs: ELIXIR ⧉ Copy def deps do [{:errorgap, "~> 0.2"}] end CONFIGURE Configure In config/runtime.exs: ELIXIR ⧉ Copy config :errorgap, endpoint: System.fetch_env!("ERRORGAP_ENDPOINT"), project_slug: System.fetch_env!("ERRORGAP_PROJECT_SLUG"), api_key: System.fetch_env!("ERRORGAP_API_KEY"), environment: System.get_env("APP_ENV", "production") The Errorgap.Client GenServer starts under your application's supervision tree automatically. Phoenix ELIXIR ⧉ Copy defmodule MyAppWeb.Endpoint do use Phoenix.Endpoint, otp_app: :my_app use Plug.ErrorHandler @impl Plug.ErrorHandler def handle_errors(conn, error_info) do Errorgap.Plug.report(conn, error_info) conn end end Keep the key in an environment variable (or your framework's secret store) — never commit it to source control. TRIGGER A TEST ERROR Trigger a test error Add a controller action that raises, hit it, then remove it: ELIXIR ⧉ Copy def errorgap_test(_conn, _params) do raise "Errorgap test error" end VERIFY Verify the connection Confirm your key and endpoint reach errorgap before wiring anything else — send one event straight to the ingestion API: BASH ⧉ Copy curl -sS -X POST "$ERRORGAP_ENDPOINT/api/projects/$ERRORGAP_PROJECT_SLUG/notices" \ -H "content-type: application/json" \ -H "x-errorgap-project-key: $ERRORGAP_API_KEY" \ -d '{"errors":[{"type":"ErrorgapInstallTest","message":"Errorgap install verification"}]}' A 201 with a group_id means ingestion works (202 = received but sampled; 401 = wrong key). Then trigger the test error above through the SDK. Your onboarding screen's Verify step checks the stack off automatically once the first event lands — it polls every three seconds. Next: the full ingestion API, or browse every SDK. err rgap Incident intelligence for teams who'd rather fix the bug than find it. PRODUCT Incident Intelligence Backtrace Live logs Uptime monitoring Performance (APM) Session Replay Agent Access (MCP) Integrations How errorgap compares DEVELOPERS SDK docs API reference Changelog Status COMPANY About Careers Contact LEGAL Terms Privacy Security Subprocessors Acceptable Use Cookies © 2026 errorgap, inc. · incident intelligence --- # https://errorgap.com/developers/sdks/flutter err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → MOBILE SDK Error monitoring for Flutter A Dart package that reports Flutter framework errors and uncaught async errors. The handlers are wired explicitly so you can compose them with your own. Frameworks Flutter Requires Dart 3.0+ Package errorgap Source ↗ Package ↗ Agent guide ↗ ON THIS PAGE Install Configure Trigger a test error Verify INSTALL Install Add it to pubspec.yaml (or flutter pub add errorgap): YAML ⧉ Copy dependencies: errorgap: ^0.2.0 CONFIGURE Configure In main(), initialize and wire both error handlers: DART ⧉ Copy void main() { WidgetsFlutterBinding.ensureInitialized(); Errorgap.init(ErrorgapConfiguration( endpoint: 'https://your-endpoint', projectSlug: 'your-project', apiKey: const String.fromEnvironment('ERRORGAP_API_KEY'), environment: kReleaseMode ? 'production' : 'development', )); FlutterError.onError = (details) { Errorgap.notify(details.exception, stackTrace: details.stack); FlutterError.presentError(details); }; PlatformDispatcher.instance.onError = (error, stack) { Errorgap.notify(error, stackTrace: stack); return true; }; runApp(const MyApp()); } Pass the key with --dart-define=ERRORGAP_API_KEY=... rather than hardcoding it. TRIGGER A TEST ERROR Trigger a test error DART ⧉ Copy ElevatedButton( onPressed: () => throw Exception('Errorgap test error'), child: const Text('Test Errorgap'), ) VERIFY Verify the connection Confirm your key and endpoint reach errorgap before wiring anything else — send one event straight to the ingestion API: BASH ⧉ Copy curl -sS -X POST "$ERRORGAP_ENDPOINT/api/projects/$ERRORGAP_PROJECT_SLUG/notices" \ -H "content-type: application/json" \ -H "x-errorgap-project-key: $ERRORGAP_API_KEY" \ -d '{"errors":[{"type":"ErrorgapInstallTest","message":"Errorgap install verification"}]}' A 201 with a group_id means ingestion works (202 = received but sampled; 401 = wrong key). Then trigger the test error above through the SDK. Your onboarding screen's Verify step checks the stack off automatically once the first event lands — it polls every three seconds. Next: the full ingestion API, or browse every SDK. err rgap Incident intelligence for teams who'd rather fix the bug than find it. PRODUCT Incident Intelligence Backtrace Live logs Uptime monitoring Performance (APM) Session Replay Agent Access (MCP) Integrations How errorgap compares DEVELOPERS SDK docs API reference Changelog Status COMPANY About Careers Contact LEGAL Terms Privacy Security Subprocessors Acceptable Use Cookies © 2026 errorgap, inc. · incident intelligence --- # https://errorgap.com/developers/sdks/go err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → SERVER SDK Error monitoring for Go A small library with a net/http middleware, a manual `Notify()` call, and a `Recover()` helper for background goroutines. Explicit by design — you decide what gets captured. Frameworks net/http Requires Go 1.22+ Package github.com/errorgaphq/errorgap-go Source ↗ Package ↗ Agent guide ↗ ON THIS PAGE Install Configure Trigger a test error Verify INSTALL Install SH ⧉ Copy go get github.com/errorgaphq/errorgap-go CONFIGURE Configure Initialize early in main and defer a clean shutdown so buffered events flush: GO ⧉ Copy import ( "context" "os" errorgap "github.com/errorgaphq/errorgap-go" ) func main() { if err := errorgap.Init(errorgap.Config{ Endpoint: os.Getenv("ERRORGAP_ENDPOINT"), ProjectSlug: os.Getenv("ERRORGAP_PROJECT_SLUG"), APIKey: os.Getenv("ERRORGAP_API_KEY"), }); err != nil { panic(err) } defer errorgap.Close(context.Background()) // ... } Wrap a net/http server with the recovery middleware: GO ⧉ Copy import "github.com/errorgaphq/errorgap-go/stdhttp" http.ListenAndServe(":8080", stdhttp.Recover(mux)) And guard background goroutines with Recover(): GO ⧉ Copy go func() { defer errorgap.Recover() // ... work ... }() Keep the key in an environment variable (or your framework's secret store) — never commit it to source control. TRIGGER A TEST ERROR Trigger a test error Add a temporary route that panics through the recover handler: GO ⧉ Copy mux.HandleFunc("/errorgap-test", func(w http.ResponseWriter, r *http.Request) { panic("Errorgap test error") }) VERIFY Verify the connection Confirm your key and endpoint reach errorgap before wiring anything else — send one event straight to the ingestion API: BASH ⧉ Copy curl -sS -X POST "$ERRORGAP_ENDPOINT/api/projects/$ERRORGAP_PROJECT_SLUG/notices" \ -H "content-type: application/json" \ -H "x-errorgap-project-key: $ERRORGAP_API_KEY" \ -d '{"errors":[{"type":"ErrorgapInstallTest","message":"Errorgap install verification"}]}' A 201 with a group_id means ingestion works (202 = received but sampled; 401 = wrong key). Then trigger the test error above through the SDK. Your onboarding screen's Verify step checks the stack off automatically once the first event lands — it polls every three seconds. Next: the full ingestion API, or browse every SDK. err rgap Incident intelligence for teams who'd rather fix the bug than find it. PRODUCT Incident Intelligence Backtrace Live logs Uptime monitoring Performance (APM) Session Replay Agent Access (MCP) Integrations How errorgap compares DEVELOPERS SDK docs API reference Changelog Status COMPANY About Careers Contact LEGAL Terms Privacy Security Subprocessors Acceptable Use Cookies © 2026 errorgap, inc. · incident intelligence --- # https://errorgap.com/developers/sdks/http err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → DIRECT INGEST Report errors over plain HTTP No SDK for your platform? Report errors by POSTing JSON straight to the ingestion endpoint. Every errorgap SDK is a thin wrapper over this one request. Frameworks any language Package no SDK required Agent guide ↗ ON THIS PAGE Store your credentials Report an error Verify STORE YOUR CREDENTIALS Store your credentials Keep the three values in your app's environment: SH ⧉ Copy ERRORGAP_API_KEY=flk_... ERRORGAP_ENDPOINT=https://your-endpoint ERRORGAP_PROJECT_SLUG=your-project REPORT AN ERROR Report an error POST to {ERRORGAP_ENDPOINT}/api/projects/{ERRORGAP_PROJECT_SLUG}/notices with the header x-errorgap-project-key: {ERRORGAP_API_KEY} and a JSON body. Only errors (each with type and message) is required: JSON ⧉ Copy { "errors": [ { "type": "RuntimeError", "message": "something went wrong", "backtrace": [ { "file": "src/handler", "line": 42, "function": "handle" } ] } ], "context": { "environment": "production" } } context.environment sets the environment shown in errorgap. Wire this into your platform's global exception hook so unhandled errors report automatically. The full contract is in the ingestion API reference. VERIFY Verify the connection Confirm your key and endpoint reach errorgap before wiring anything else — send one event straight to the ingestion API: BASH ⧉ Copy curl -sS -X POST "$ERRORGAP_ENDPOINT/api/projects/$ERRORGAP_PROJECT_SLUG/notices" \ -H "content-type: application/json" \ -H "x-errorgap-project-key: $ERRORGAP_API_KEY" \ -d '{"errors":[{"type":"ErrorgapInstallTest","message":"Errorgap install verification"}]}' A 201 with a group_id means ingestion works (202 = received but sampled; 401 = wrong key). Then trigger the test error above through the SDK. Your onboarding screen's Verify step checks the stack off automatically once the first event lands — it polls every three seconds. Next: the full ingestion API, or browse every SDK. err rgap Incident intelligence for teams who'd rather fix the bug than find it. PRODUCT Incident Intelligence Backtrace Live logs Uptime monitoring Performance (APM) Session Replay Agent Access (MCP) Integrations How errorgap compares DEVELOPERS SDK docs API reference Changelog Status COMPANY About Careers Contact LEGAL Terms Privacy Security Subprocessors Acceptable Use Cookies © 2026 errorgap, inc. · incident intelligence --- # https://errorgap.com/developers/sdks/java err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → SERVER SDK Error monitoring for the JVM A JVM core plus a Spring Boot auto-configuration starter. On Spring the starter registers a high-precedence exception resolver; on plain JVM apps you configure the core directly. Frameworks Spring Boot · plain JVM Requires Java 17+ Package com.errorgap:errorgap-spring-boot-starter Source ↗ Package ↗ Agent guide ↗ ON THIS PAGE Install Configure Trigger a test error Verify INSTALL Install Add the Spring Boot starter (Maven shown; Gradle is equivalent): XML ⧉ Copy com.errorgap errorgap-spring-boot-starter 0.2.0 For non-Spring apps, depend on errorgap-core instead. CONFIGURE Configure Spring Boot In application.properties: PROPERTIES ⧉ Copy errorgap.endpoint=${ERRORGAP_ENDPOINT} errorgap.project-slug=${ERRORGAP_PROJECT_SLUG} errorgap.api-key=${ERRORGAP_API_KEY} errorgap.environment=production errorgap.release=@project.version@ Auto-configuration is gated on errorgap.project-slug and registers an MVC HandlerExceptionResolver at the highest precedence, reporting controller exceptions before the framework renders them. Plain JVM JAVA ⧉ Copy import com.errorgap.Configuration; import com.errorgap.Errorgap; Configuration cfg = new Configuration() .setEndpoint(System.getenv("ERRORGAP_ENDPOINT")) .setProjectSlug(System.getenv("ERRORGAP_PROJECT_SLUG")) .setApiKey(System.getenv("ERRORGAP_API_KEY")); Errorgap.init(cfg); Keep the key in an environment variable (or your framework's secret store) — never commit it to source control. TRIGGER A TEST ERROR Trigger a test error JAVA ⧉ Copy @GetMapping("/errorgap-test") public String errorgapTest() { throw new RuntimeException("Errorgap test error"); } VERIFY Verify the connection Confirm your key and endpoint reach errorgap before wiring anything else — send one event straight to the ingestion API: BASH ⧉ Copy curl -sS -X POST "$ERRORGAP_ENDPOINT/api/projects/$ERRORGAP_PROJECT_SLUG/notices" \ -H "content-type: application/json" \ -H "x-errorgap-project-key: $ERRORGAP_API_KEY" \ -d '{"errors":[{"type":"ErrorgapInstallTest","message":"Errorgap install verification"}]}' A 201 with a group_id means ingestion works (202 = received but sampled; 401 = wrong key). Then trigger the test error above through the SDK. Your onboarding screen's Verify step checks the stack off automatically once the first event lands — it polls every three seconds. Next: the full ingestion API, or browse every SDK. err rgap Incident intelligence for teams who'd rather fix the bug than find it. PRODUCT Incident Intelligence Backtrace Live logs Uptime monitoring Performance (APM) Session Replay Agent Access (MCP) Integrations How errorgap compares DEVELOPERS SDK docs API reference Changelog Status COMPANY About Careers Contact LEGAL Terms Privacy Security Subprocessors Acceptable Use Cookies © 2026 errorgap, inc. · incident intelligence --- # https://errorgap.com/developers/sdks/laravel err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → SERVER SDK Error monitoring for Laravel A Laravel-native package that auto-registers a service provider, binds into the exception handler, and listens for failed queue jobs — no manual wiring beyond the config. Frameworks Laravel 10 · 11 · 12 Requires PHP 8.1+ Package errorgap/laravel Source ↗ Package ↗ Agent guide ↗ ON THIS PAGE Install Configure Trigger a test error Verify INSTALL Install SH ⧉ Copy composer require errorgap/laravel The service provider auto-registers. Supports Laravel 10, 11, and 12. CONFIGURE Configure Publish the config, then set your credentials in .env: SH ⧉ Copy php artisan vendor:publish --tag=errorgap-config SH ⧉ Copy ERRORGAP_ENDPOINT=https://your-endpoint ERRORGAP_PROJECT_SLUG=your-project ERRORGAP_API_KEY=flk_... The package binds into the Laravel exception handler (preferring reportable() on Laravel 8+) and reports JobFailed queue events. Mirror the keys in .env.example with empty values. Keep the key in an environment variable (or your framework's secret store) — never commit it to source control. TRIGGER A TEST ERROR Trigger a test error PHP ⧉ Copy Route::get('/errorgap-test', function () { throw new \Exception('Errorgap test error'); }); Visit /errorgap-test, then remove the route. VERIFY Verify the connection Confirm your key and endpoint reach errorgap before wiring anything else — send one event straight to the ingestion API: BASH ⧉ Copy curl -sS -X POST "$ERRORGAP_ENDPOINT/api/projects/$ERRORGAP_PROJECT_SLUG/notices" \ -H "content-type: application/json" \ -H "x-errorgap-project-key: $ERRORGAP_API_KEY" \ -d '{"errors":[{"type":"ErrorgapInstallTest","message":"Errorgap install verification"}]}' A 201 with a group_id means ingestion works (202 = received but sampled; 401 = wrong key). Then trigger the test error above through the SDK. Your onboarding screen's Verify step checks the stack off automatically once the first event lands — it polls every three seconds. Next: the full ingestion API, or browse every SDK. err rgap Incident intelligence for teams who'd rather fix the bug than find it. PRODUCT Incident Intelligence Backtrace Live logs Uptime monitoring Performance (APM) Session Replay Agent Access (MCP) Integrations How errorgap compares DEVELOPERS SDK docs API reference Changelog Status COMPANY About Careers Contact LEGAL Terms Privacy Security Subprocessors Acceptable Use Cookies © 2026 errorgap, inc. · incident intelligence --- # https://errorgap.com/developers/sdks/node err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → SERVER SDK Error monitoring for Node.js Capture uncaught exceptions and unhandled rejections across your Node services — Express, Fastify, or plain HTTP — and see them grouped in errorgap within seconds. Frameworks Express · Fastify · plain Node Requires Node 20+ Package @errorgap/node Source ↗ Package ↗ Agent guide ↗ ON THIS PAGE Install Configure Trigger a test error Verify INSTALL Install Add the package with your usual package manager. SH ⧉ Copy npm install @errorgap/node CONFIGURE Configure Create an errorgap.ts (or errorgap.js) and import it as early as possible in your entry point, so the SDK is watching before the rest of the app boots. TS ⧉ Copy import { Errorgap } from "@errorgap/node"; Errorgap.init({ endpoint: process.env.ERRORGAP_ENDPOINT!, projectSlug: process.env.ERRORGAP_PROJECT_SLUG!, apiKey: process.env.ERRORGAP_API_KEY!, }); Keep the key in an environment variable (or your framework's secret store) — never commit it to source control. init hooks uncaughtException and unhandledRejection for you. Framework adapters ship as subpath exports — add them if you run a web server: Express TS ⧉ Copy import { errorgapErrorHandler } from "@errorgap/node/express"; app.use(errorgapErrorHandler()); // register last Fastify TS ⧉ Copy import { errorgapPlugin } from "@errorgap/node/fastify"; await app.register(errorgapPlugin); TRIGGER A TEST ERROR Trigger a test error Throw once, with the SDK already imported, to confirm the in-app integration works end to end. TS ⧉ Copy import "./errorgap"; throw new Error("Errorgap test error"); VERIFY Verify the connection Confirm your key and endpoint reach errorgap before wiring anything else — send one event straight to the ingestion API: BASH ⧉ Copy curl -sS -X POST "$ERRORGAP_ENDPOINT/api/projects/$ERRORGAP_PROJECT_SLUG/notices" \ -H "content-type: application/json" \ -H "x-errorgap-project-key: $ERRORGAP_API_KEY" \ -d '{"errors":[{"type":"ErrorgapInstallTest","message":"Errorgap install verification"}]}' A 201 with a group_id means ingestion works (202 = received but sampled; 401 = wrong key). Then trigger the test error above through the SDK. Your onboarding screen's Verify step checks the stack off automatically once the first event lands — it polls every three seconds. Next: the full ingestion API, or browse every SDK. err rgap Incident intelligence for teams who'd rather fix the bug than find it. PRODUCT Incident Intelligence Backtrace Live logs Uptime monitoring Performance (APM) Session Replay Agent Access (MCP) Integrations How errorgap compares DEVELOPERS SDK docs API reference Changelog Status COMPANY About Careers Contact LEGAL Terms Privacy Security Subprocessors Acceptable Use Cookies © 2026 errorgap, inc. · incident intelligence --- # https://errorgap.com/developers/sdks/php err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → SERVER SDK Error monitoring for PHP A framework-agnostic core for Symfony, Slim, or plain PHP. It installs exception and error handlers so otherwise-unreported failures still reach errorgap. On Laravel, use the dedicated package. Frameworks Symfony · Slim · plain PHP Requires PHP 8.1+ Package errorgap/errorgap Source ↗ Package ↗ Agent guide ↗ ON THIS PAGE Install Configure Trigger a test error Verify INSTALL Install SH ⧉ Copy composer require errorgap/errorgap On Laravel use errorgap/laravel; on WordPress use the errorgap plugin. CONFIGURE Configure Call Errorgap::init(...) in your bootstrap — Symfony's src/Kernel.php, Slim's public/index.php, or a plain front controller: PHP ⧉ Copy use Errorgap\Errorgap; Errorgap::init([ 'endpoint' => $_ENV['ERRORGAP_ENDPOINT'], 'projectSlug' => $_ENV['ERRORGAP_PROJECT_SLUG'], 'apiKey' => $_ENV['ERRORGAP_API_KEY'], ]); By default init registers set_exception_handler and set_error_handler to catch otherwise-unreported errors. Keep the key in an environment variable (or your framework's secret store) — never commit it to source control. TRIGGER A TEST ERROR Trigger a test error Add a temporary route that throws: PHP ⧉ Copy $app->get('/errorgap-test', function () { throw new \Exception('Errorgap test error'); }); VERIFY Verify the connection Confirm your key and endpoint reach errorgap before wiring anything else — send one event straight to the ingestion API: BASH ⧉ Copy curl -sS -X POST "$ERRORGAP_ENDPOINT/api/projects/$ERRORGAP_PROJECT_SLUG/notices" \ -H "content-type: application/json" \ -H "x-errorgap-project-key: $ERRORGAP_API_KEY" \ -d '{"errors":[{"type":"ErrorgapInstallTest","message":"Errorgap install verification"}]}' A 201 with a group_id means ingestion works (202 = received but sampled; 401 = wrong key). Then trigger the test error above through the SDK. Your onboarding screen's Verify step checks the stack off automatically once the first event lands — it polls every three seconds. Next: the full ingestion API, or browse every SDK. err rgap Incident intelligence for teams who'd rather fix the bug than find it. PRODUCT Incident Intelligence Backtrace Live logs Uptime monitoring Performance (APM) Session Replay Agent Access (MCP) Integrations How errorgap compares DEVELOPERS SDK docs API reference Changelog Status COMPANY About Careers Contact LEGAL Terms Privacy Security Subprocessors Acceptable Use Cookies © 2026 errorgap, inc. · incident intelligence --- # https://errorgap.com/developers/sdks/python err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → SERVER SDK Error monitoring for Python One package for Django, Flask, and FastAPI. Middleware reports unhandled exceptions before your framework turns them into a response, with a manual capture API for everything else. Frameworks Django · Flask · FastAPI Requires Python 3.8+ Package errorgap Source ↗ Package ↗ Agent guide ↗ ON THIS PAGE Install Configure Trigger a test error Verify INSTALL Install Install the extra for your framework so the right middleware ships with it. SH ⧉ Copy pip install "errorgap[django]" # or [flask], [fastapi] CONFIGURE Configure Call errorgap.init(...) once at startup, then register the middleware for your framework. Django At the bottom of settings.py: PYTHON ⧉ Copy import os import errorgap errorgap.init( endpoint=os.environ["ERRORGAP_ENDPOINT"], project_slug=os.environ["ERRORGAP_PROJECT_SLUG"], api_key=os.environ["ERRORGAP_API_KEY"], ) Then add the middleware near the top of MIDDLEWARE: PYTHON ⧉ Copy MIDDLEWARE = [ "errorgap.django.ErrorgapMiddleware", # ... existing middleware ... ] Flask PYTHON ⧉ Copy import os import errorgap from errorgap.flask import init_app from flask import Flask errorgap.init( endpoint=os.environ["ERRORGAP_ENDPOINT"], project_slug=os.environ["ERRORGAP_PROJECT_SLUG"], api_key=os.environ["ERRORGAP_API_KEY"], ) app = Flask(__name__) init_app(app) # connects Flask's got_request_exception signal FastAPI PYTHON ⧉ Copy import os import errorgap from errorgap.fastapi import ErrorgapMiddleware from fastapi import FastAPI errorgap.init( endpoint=os.environ["ERRORGAP_ENDPOINT"], project_slug=os.environ["ERRORGAP_PROJECT_SLUG"], api_key=os.environ["ERRORGAP_API_KEY"], ) app = FastAPI() app.add_middleware(ErrorgapMiddleware) Keep the key in an environment variable (or your framework's secret store) — never commit it to source control. TRIGGER A TEST ERROR Trigger a test error Add a throwaway route that raises, hit it once, then remove it. (From manage.py shell on Django you can raise Exception("Errorgap test error") directly.) PYTHON ⧉ Copy @app.route("/errorgap-test") # Flask; FastAPI uses @app.get def errorgap_test(): raise Exception("Errorgap test error") VERIFY Verify the connection Confirm your key and endpoint reach errorgap before wiring anything else — send one event straight to the ingestion API: BASH ⧉ Copy curl -sS -X POST "$ERRORGAP_ENDPOINT/api/projects/$ERRORGAP_PROJECT_SLUG/notices" \ -H "content-type: application/json" \ -H "x-errorgap-project-key: $ERRORGAP_API_KEY" \ -d '{"errors":[{"type":"ErrorgapInstallTest","message":"Errorgap install verification"}]}' A 201 with a group_id means ingestion works (202 = received but sampled; 401 = wrong key). Then trigger the test error above through the SDK. Your onboarding screen's Verify step checks the stack off automatically once the first event lands — it polls every three seconds. Next: the full ingestion API, or browse every SDK. err rgap Incident intelligence for teams who'd rather fix the bug than find it. PRODUCT Incident Intelligence Backtrace Live logs Uptime monitoring Performance (APM) Session Replay Agent Access (MCP) Integrations How errorgap compares DEVELOPERS SDK docs API reference Changelog Status COMPANY About Careers Contact LEGAL Terms Privacy Security Subprocessors Acceptable Use Cookies © 2026 errorgap, inc. · incident intelligence --- # https://errorgap.com/developers/sdks/react-native err rgap Product ▾ Integrations Pricing Docs Trust Developers Company Changelog Sign in Start free trial → MOBILE SDK Error monitoring for React Native A pure-JS package — no native modules, no pod install, no Gradle wiring. It hooks the global error handler and unhandled promise rejections. (For native crashes, run the platform SDKs alongside.) Frameworks React Native Requires React Native 0.70+ Package @errorgap/react-native Source ↗ Package ↗ Agent guide ↗ ON THIS PAGE Install Configure Trigger a test error Verify INSTALL Install SH ⧉ Copy npm install @errorgap/react-native No native modules ship in v1 — nothing to link. Native crash reporting is pending; use the platform SDKs alongside for native crashes. CONFIGURE Configure In your entry file (index.js / App.tsx): TS ⧉ Copy import { Errorgap } from "@errorgap/react-native"; import { Platform } from "react-native"; Errorgap.init({ endpoint: "https://your-endpoint", projectSlug: "your-project", apiKey: "flk_...", environment: __DEV__ ? "development" : "production", deviceInfo: { os_name: Platform.OS, os_version: String(Platform.Version), }, }); The SDK hooks ErrorUtils.setGlobalHandler and unhandled promise rejections automatically. TRIGGER A TEST ERROR Trigger a test error TSX ⧉ Copy