API Observability for Mobile Apps

The Witness For Every API Failure

Record real API traffic from React Native and Expo apps, detect failures, track response changes, and generate developer-ready reports automatically.

Expo
React Native
Axios
Fetch
apiwitness-dashboard

0

Failed Requests

0

Changed Responses

0

New Endpoints

0

Missing Docs

POST/auth/login401Failed
GET/profile200Healthy
POST/orders422Changed
GET/courses200Healthy
Postman ExportOpenAPI ExportMarkdown Docs
The Problem

Mobile API bugs are impossible to reproduce

QA reports vague symptoms. Developers waste hours trying to reconstruct what actually happened.

What QA reports

Vague, hard to reproduce

!Login is not working
!Course list is empty
!Payment failed
!Profile update is broken

What developers need

Specific, actionable data

  • Which API endpoint failed?
  • What request payload was sent?
  • What response came back?
  • Which app version?
  • Which environment?
  • Did the API response shape change?
APIWitness already knows.
How It Works

From zero to API observability in minutes

Install the SDK once. Every API call is recorded, analyzed, and ready for debugging — without changing your workflow.

Step 1

Install SDK

Add one dependency, call one function. No build tool changes.

Step 2

Use App

Every API call is automatically captured — fetch and Axios.

Step 3

Capture Traffic

Full payloads, headers, status codes, and timing recorded.

Step 4

Detect Issues

Failures, response shape changes, and undocumented endpoints flagged.

Step 5

Generate Reports

Export as Postman, OpenAPI, Markdown docs, or JSON.

Features

From raw API traffic to engineering insight

Every captured request is analyzed and categorized. No more digging through raw logs.

API Failure Detection

Every failed request is captured with full context — status code, payload, headers, timing, and error message.

Response Change Tracking

Detects added, removed, or modified fields in API responses between app versions automatically.

New Endpoint Discovery

Automatically identifies API endpoints your app calls that have no matching documentation.

OpenAPI Generation

Auto-generated OpenAPI 3.0 specifications from real mobile app traffic — no manual spec writing.

Postman Export

One-click export of captured endpoints as a Postman collection for further testing and handover.

Documentation Generation

Generate readable Markdown documentation from captured API usage for your team wiki or README.

Payload Comparison

Side-by-side diff of request and response payloads across versions to surface breaking changes.

Mobile API Observability

Purpose-built for React Native and Expo. Works with fetch and Axios out of the box.

Breaking Changes

Detect Breaking API Changes Before Users Do

One field rename in an API response can crash your mobile app. APIWitness catches it before it reaches production.

Yesterdayv2.3.0
{
  "name": "Ahmed",
  "email": "test@test.com"
}
Todayv2.4.0
{
  "fullName": "Ahmed",
  "email": "test@test.com"
}
APIWitness OutputShape Change Detected
Removed

name

Added

fullName

Documentation

From app traffic to production docs

API documentation that stays in sync with your mobile app — automatically generated from real usage.

App Traffic
OpenAPI Spec
Postman Collection
Markdown Docs

OpenAPI 3.0

Standard spec generated from real traffic with inferred schemas, parameters, and response types.

Postman Collections

Ready-to-import collections with all captured endpoints, methods, and example payloads.

Markdown Docs

Readable documentation with endpoints, response shapes, version diffs, and timeline data.

Installation

Install in under a minute

Add one dependency, call one function. No build tool changes, no native module linking.

terminal
$npx expo install @apiwitness/sdk
app/_layout.tsx
1import { useEffect } from "react";
2import { Stack } from "expo-router";
3import { startAPIWitness, setupAxiosWitness }
4 from "@apiwitness/sdk";
5import axios from "axios";
6 
7export default function RootLayout() {
8 useEffect(() => {
9 startAPIWitness({
10 appName: "MyApp",
11 appVersion: "1.0.0",
12 environment: "development",
13 recordSuccessfulRequests: true,
14 sensitiveFields: [
15 "password",
16 "token",
17 "apiKey",
18 "secret",
19 ],
20 });
21 
22 setupAxiosWitness(axios);
23 }, []);
24 
25 return (
26 <>
27 <StatusBar style="dark" />
28 <Stack screenOptions={{ headerShown: false }} />
29 </>
30 );
31}

startAPIWitness()

Enables automatic fetch recording and log persistence.

setupAxiosWitness()

Optional — adds Axios interceptor for request capture.

Sensitive Fields

Keys are masked before logs are stored locally.

Configuration

Fine-tune every detail

Configure what's captured, what's masked, and how data is synchronized.

OptionTypeDefaultDescription
appNamestringName of the mobile app.
appVersionstringApp version used for debugging reports.
environmentstringCurrent API environment: "development", "staging", "production".
recordSuccessfulRequestsbooleanfalseWhether successful requests should also be recorded.
sensitiveFieldsstring[]["password","token","apiKey",…]Request / response keys to mask before storing.
knownEndpointsstring[][]Known API paths for detecting new/undocumented endpoints.
knownDocsSpecRecord<string,string>{}Known endpoints mapped to doc sources for undocumented detection.
dashboardUrlstringundefinedOptional URL for syncing captured data to a cloud dashboard.
enableChangeDetectionbooleanfalseEnables response shape comparison across app versions.
enableDocsGenerationbooleanfalseEnables docs generation from captured API traffic.
enableBreadcrumbsbooleantrueTracks user actions (taps, navigation, gestures) as context for API calls.
alertWebhookUrlstringundefinedOptional webhook URL for alert dispatch when thresholds are exceeded.
alertThresholdnumber3Number of failure occurrences within cooldown window before alert fires.
alertCooldownMsnumber60000Minimum ms between duplicate alerts to prevent spamming.
performanceBudgetsPerformanceBudget[][]Latency thresholds per endpoint pattern.
Report Viewer

See it in action

Upload an apiwitness-report.json from your app, or view a sample. Everything stays in your browser.

Drop report file or click to browse

Supports .json files exported from the SDK

Your data stays in your browser. Nothing is uploaded.
Pricing

Simple, transparent pricing

Start free. Scale as your team grows.

Open Source

$0

Self-hosted. Full SDK features. Perfect for indie developers and small teams.

  • All SDK features
  • Local data storage
  • JSON/OpenAPI/Postman export
  • Community support
  • MIT License
Most Popular

Team

$29/month

Cloud dashboard with collaboration. For teams shipping mobile apps weekly.

  • Everything in Open Source
  • Cloud dashboard
  • Team collaboration
  • Alert webhooks
  • Slack / Discord integration
  • Email support

Enterprise

Custom

Dedicated support, SLAs, on-premise deployment, and custom integrations.

  • Everything in Team
  • On-premise deployment
  • SSO / SAML
  • Custom integrations
  • Dedicated support
  • SLA guarantees

Start witnessing your mobile API failures

Install the SDK in your React Native or Expo app and get full API observability in minutes.