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. While Stripe grants apps the read_write scope by default, our code is purely observational: we only call accounts.retrieve and invoices.retrieve on connected accounts. We NEVER charge on your behalf, NEVER issue refunds, NEVER modify anything, and we NEVER see full card numbers. (We have a support request open with Stripe to enable read_only scope for our app, which will further tighten the technical permission to match our actual usage.)

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.