Skip to content

Truto vs Merge.dev: The Best Alternative for Custom APIs

Evaluating Merge.dev alternatives? Discover why SaaS teams are migrating to Truto to escape per-connection pricing, rigid schemas, and customer data caching.

Roopendra Talekar Roopendra Talekar · · 7 min read
Truto vs Merge.dev: The Best Alternative for Custom APIs

If you are evaluating Merge.dev for your unified API strategy, the initial pitch sounds perfect: one API, hundreds of integrations, ship fast. But then you do the math on 100+ linked accounts at $65 each, your biggest enterprise customer demands support for a custom Salesforce object, and your security team flags that Merge is storing a copy of everyone's HR data on their servers.

You are not the first team to hit this wall. We have migrated multiple customers away from Merge in the last few months - all for the exact same reasons.

This post is a direct comparison of Truto vs Merge.dev, written for PMs and engineering leaders who need integrations that survive enterprise reality. We will break down exactly where Merge.dev falls short at scale, and why Truto's programmable, zero-data-retention architecture is the superior alternative.

The Unified API Trap: Why SaaS Teams Outgrow Merge.dev

A unified API is one of the primary models for product integrations - an abstraction that gives you one schema across many vendors. The trade-off is almost always the same: you ship faster today, but pay a heavy tax later when a customer's data model doesn't fit the rigid schema.

Merge.dev is a solid product for a specific use case: if you need a handful of standard integrations, your customers use vanilla configurations, and you have the budget for enterprise pricing. Outside of that sweet spot, things get painful fast. Teams typically hit three breaking points:

  1. Pricing that punishes growth — linked account costs grow faster than revenue, cratering unit economics.
  2. Schema rigidity — enterprise customers need custom field mapping that Merge gates behind contract-based plans or forces into raw passthrough requests.
  3. Data privacy liabilities — a store-and-sync architecture creates compliance friction.

Let's look at each of these architectural choices and their consequences.

Feature Comparison: Truto vs Merge.dev

Feature Truto Merge.dev
Architecture Real-time, pass-through Sync-and-cache (batch polling)
Data Retention Zero data retention Indefinite caching on vendor servers
Pricing Model Predictable platform pricing Per-linked-account ($65/mo overages)
Custom Field Mapping Turing-complete mapping via JSONata on all plans Simplistic mapping; complex fields require raw passthrough or higher tiers
Schema Overrides 3-level hierarchy (Platform, Env, Account) Fixed common model
Custom Unified Models Create entirely custom unified models for your app Locked into predefined common models
Custom Integrations Fully customizable; build your own integrations Limited to vendor roadmap
Custom Connection UI RapidForm: Build custom UI flows during account connection Standard, static connection modal
File Picker UI Unified SDK launching native vendor UIs Custom-built replica UIs
Data Pipelines & Webhooks RapidBridge: Stream any data to your infrastructure via webhooks Standard webhooks tied to rigid schemas
AI Agent Support Auto-generated MCP tools for every connected account Agent Handler (limited functionality)
OAuth App Ownership You own your OAuth apps and tokens Merge holds the tokens (vendor lock-in)
Integration Logic Declarative configuration (zero-code) Hardcoded provider logic
Support Direct Slack-based engineering support Standard ticketing system

The Problem with Merge API Pricing: Punishing Your Scale

Merge's published Launch plan costs $650/month for up to 10 production Linked Accounts, with each additional account costing $65/month.

Merge calls connections "Linked Accounts." In practice, that is usually "one customer connected to one provider." If one customer connects their CRM, HRIS, and ticketing system, you pay three times.

Here is the math if you stay on Launch pricing (ignoring volume discounts and enterprise contracts):

Pricing data accurate as of March 6, 2026.

Production Linked Accounts Monthly Cost Notes
3 $0 Free tier limit
10 $650 Base Launch plan
25 $1,625 $650 + (15 × $65)
100 $6,500 $650 + (90 × $65)
500 $32,500 $650 + (490 × $65)

If you are a B2B SaaS with even mild success, "500 connected customers" isn't a wild number. With per-connection pricing, the better your GTM works, the more your COGS graph looks like a ski slope. If your integration feature is attached to a $99/month plan, per-connection fees can swallow your revenue before you've even paid for infrastructure or support.

Info

Before committing to any vendor, evaluate the true cost of building SaaS integrations in-house versus buying an abstraction layer. A bad vendor contract can cost more than an internal engineering team.

The "Lowest Common Denominator" Schema Problem

When you sell to enterprise customers, they do not use vanilla SaaS instances. Their Salesforce environments are heavily modified with custom objects, proprietary fields, and complex validation rules.

Merge normalizes data across providers by defining a fixed common model. A CRM contact has the same fields whether it comes from Salesforce or HubSpot. That works great for first_name and email. It breaks immediately for everything else.

When your biggest enterprise customer asks you to sync a custom nested object, Merge's standard endpoints will fail you. You check their documentation and realize that "Access custom fields" is gated behind their expensive, contract-based Professional or Enterprise tiers.

Even then, you are often forced to write raw passthrough requests. Merge's own docs state that passthrough requests "follow each integration's specific API formats instead of Merge's unified format."

When you rely on passthrough hacks, you are writing provider-specific code on top of a unified API. You are paying a premium for an abstraction layer that you are actively bypassing. Your unified APIs are lying to you if they claim to handle enterprise complexity without programmable mapping.

Data Privacy: Why Caching Customer Data is a Liability

Merge uses a sync-and-cache architecture. They periodically poll third-party APIs and store a copy of your customers' data on their infrastructure indefinitely (until actively deleted).

While this allows for incremental sync efficiency, it creates a massive security and compliance headache:

  1. Compliance Friction: When your enterprise customer's security team asks "where is our employee data stored?" and the answer is "on a third-party's servers in addition to ours," that is a conversation you don't want to have during a deal cycle. Passing SOC2 or HIPAA audits gets significantly harder.
  2. Stale Data: Because Merge relies on batch-based polling rather than real-time fetching (daily on the Launch plan), the data you retrieve is often out of sync with the source of truth.
  3. Vendor Lock-in: When customers authenticate through Merge, Merge holds the OAuth tokens. Switching vendors means asking every customer to re-authenticate.

How Truto Fixes This: The Programmable Integration Layer

Truto is not a dumb pipe, and it does not force you into a rigid box. We built Truto as a programmable integration layer that handles schema normalization without sacrificing depth or data privacy.

Real-Time, Pass-Through Architecture

Truto does not store your customers' payload data. When you call Truto's Unified API, our generic execution engine translates the request, hits the third-party provider directly in real-time, transforms the response on the fly, and returns it to you.

Your customers' data never persists on Truto's infrastructure. This means always-fresh data, simpler compliance, and no re-auth migration tax (since Truto lets you own your OAuth apps).

Zero Integration-Specific Code & The 3-Level Override Hierarchy

Most unified API platforms maintain separate code paths for every integration - an endless maze of if (provider === 'hubspot') statements.

Truto's runtime contains zero integration-specific code. Everything is defined as data. We use JSONata - a Turing-complete query and transformation language for JSON - to map unified requests into native API formats.

Because mappings are just configuration expressions, Truto supports a three-level override hierarchy:

  1. Platform Level: The default unified schema that works for 90% of use cases.
  2. Environment Level: Overrides for your specific staging or production environments.
  3. Account Level: Overrides for an individual connected customer account.

If one enterprise customer has a highly customized Lead_Score__c field in Salesforce, you can modify the JSONata mapping for that specific account to extract their custom fields. No passthrough hacks. No waiting on our roadmap. No upgrading to an Enterprise tier.

flowchart TD
    A["Unified API Request"] --> B["Resolve Config<br>(from DB, not code)"]
    B --> C["Before Steps<br>(optional enrichment)"]
    C --> D["Transform Request<br>(JSONata mapping)"]
    D --> E["Call Provider API<br>(real-time, pass-through)"]
    E --> F["Transform Response<br>(JSONata mapping)"]
    F --> G["After Steps<br>(optional enrichment)"]
    G --> H["Unified Response"]

Every box in that diagram runs the same generic code path regardless of provider. Read more about our zero-code architecture.

Real-World Proof: Why Customers Migrate from Merge.dev to Truto

We recently migrated multiple SaaS companies off Merge.dev, including Spendflo and Thoropass. Their breaking points highlight the exact architectural differences discussed above.

When migrating Spendflo and Thoropass, we paired directly with their engineering teams and used the Merge.dev API to automate the migration away from Merge. More importantly, because Truto uses a declarative architecture for building Unified APIs, we configured our endpoints to match Merge.dev's exact response structure. This meant both teams could swap out their integration layer with minimal code changes on their end.

Even companies that still use Merge.dev for the long tail rely on Truto for scale. Sprinto, for example, uses Truto to power their highest-volume integration offerings because our pass-through architecture and predictable pricing handle enterprise loads that would otherwise break unit economics.

Stop Compromising on Your Integration Strategy

Engineering leaders are often told they have to choose between development velocity (using a rigid unified API) and enterprise flexibility (building direct integrations).

This is a false dichotomy. You do not have to accept $65 per-connection fees, caching of your customers' sensitive data, or lowest-common-denominator schemas. By treating integration mappings as declarative data rather than hardcoded logic, you get the speed of a unified API with the depth of a custom build.

FAQ

How much does Merge.dev cost?
Merge.dev's Launch plan starts at $650/month for up to 10 production Linked Accounts. The first 3 accounts are free, but every additional account beyond 10 costs $65/month. They also offer custom-priced Professional and Enterprise tiers for advanced needs.
What is a Linked Account in Merge.dev?
A Linked Account is one customer connected to one third-party provider. If a single customer connects their CRM, HRIS, and ticketing system through Merge, that counts as three separate Linked Accounts.
Why do SaaS teams migrate away from Merge.dev?
Teams typically migrate from Merge.dev to alternatives like Truto to escape per-connection pricing that scales poorly, rigid schemas that struggle with enterprise custom objects, and the security liabilities of caching customer data on third-party servers.

More from our Blog