Introduction

Build on top of your merchant portfolio with the Modulate Partner API

The Modulate Partner API gives ISO partners programmatic access to every dimension of their merchant portfolio — pricing, processor profiles, transactions, statements, residuals, compliance, and AI-powered insights — through a single, consistent REST API.

What you can build

Portfolio dashboards

Display live merchant health, volume trends, and residual summaries directly inside your own platform.

Automated pricing tools

Pull current and historical TSYS pricing for any merchant to power competitive analysis or repricing workflows.

Statement delivery

List and download merchant statements programmatically — great for automated distribution or archiving.

Residual reporting

Access payout summaries, adjustments, withholds, and per-merchant residual breakdowns for any reporting period.

Processor profiles

Retrieve complete TSYS processor profile data — card network acceptance, banking details, interchange qualification, hierarchy, and more — for any merchant in your portfolio.

API basics

PropertyValue
Base URLhttps://getmodulate.dev
ProtocolHTTPS only
FormatJSON request and response bodies
AuthenticationX-Partner-API-Key header
VersioningURL-based (/api/partner/...)

Rate limits

Requests are rate-limited per API key over a rolling 60-second window. Exceeding the limit returns a 429 Too Many Requests response with a Retry-After header indicating when you can resume.

Every response carries your current position in the window:

HeaderMeaning
X-RateLimit-LimitRequests allowed in the window
X-RateLimit-RemainingRequests still available
X-RateLimit-ResetUnix timestamp when the oldest request leaves the window

Checking before you spend

GET /api/partner/rate-limit reports the same window for every active key in your organization, with the key you authenticated with listed first. Use it to pre-flight a batch job, or to see the separate AI budget that applies to POST .../explain — the headers above only reveal that budget once you have already called an AI endpoint.

$curl https://getmodulate.dev/api/partner/rate-limit \
> -H "X-Partner-API-Key: YOUR_API_KEY"

Checking your status is metered against its own budget, so polling it does not consume the standard quota it reports.

If usage cannot be read, the response sets "source": "unavailable" and the used, remaining, and reset_at fields are null — that means unknown, not idle. Keep your own client-side counter rather than assuming a full budget.

Need higher rate limits? Contact help@getmodulate.dev to discuss your use case.

Support