API Reference (Documentation)

Dunning LITE is primarily no-code (via Stripe OAuth). However, we expose a RESTful API for Studio plan developers who need to integrate metrics into their internal dashboards.

Executive Summary (TL;DR)

  • API secured with Bearer Tokens (JWT).
  • Generous rate limits (1,000 req/minute) for Studio plans.
  • 100% typed payloads (TypeScript).

Secure Authentication (OAuth + Bearer Token)

99% of our customers will never need to touch an endpoint. When you click “Connect” on the site, we initiate a standard Stripe Connect OAuth flow — and we request the read_only scope. Stripe grants appsread_write by default; we asked Stripe to restrict us, and they enabled read_only for our application. This means we cannot charge on your behalf, cannot issue refunds, andcannot modify anything in your account — not as a matter of policy, but as a technical restriction enforced by Stripe itself. Our code only calls accounts.retrieve and invoices.retrieve on connected accounts, and we never see full card numbers.

Bearer JWT for Studio Plans

Studio plan users have access to a personal API token. Include it in the header of each request:

Authorization: Bearer <tu_token_studio>

Public Dunning API Endpoints (Q3 Roadmap)

For agency and Studio plan users:

GET /v1/mrr/recovered

Returns a JSON object with the exact volume of recovered MRR per account during the specified period. Rate limit: 1,000 req/minute.

TypeScript Integration Examples

All Dunning API payloads are 100% typed. You can install the official types from npm or copy the interfaces directly from this documentation.

Fetching Recovered MRR

const res = await fetch('https://app.dunninglite.com/v1/mrr/recovered', {
  headers: { Authorization: `Bearer ${process.env.DUNNING_LITE_API_TOKEN}` },
});
const data: MrrRecoveredResponse = await res.json();

API FAQ

Do I need the API to use Dunning LITE?

No. The API is optional and only relevant for the Studio plan. The main payment recovery flow operates via Stripe OAuth with no code required.

What happens if I exceed the rate limit?

You will receive a 429 Too Many Requests response. The limit is 1,000 requests per minute per token. For agency integrations with higher volume, contact support.

Join The Dunning Letter

Tactical SaaS strategies to reduce churn and recover revenue. 1 email per month.