Skip to content

iPaaS

Nango
API integration

Ship iPaaS features without building the integration. Full Nango API access via Proxy and 50+ MCP-ready tools for AI agents — extend models and mappings to fit your product.

Talk to us
Nango

Use Cases

Why integrate with Nango

Common scenarios for SaaS companies building Nango integrations for their customers.

01

Ship an agentic tool-calling layer for your AI product

Let your users connect their own SaaS accounts and expose those integrations as secure, credential-scoped tools your LLM agents can invoke. Use action triggers to run write operations inside each tenant's permissions without ever exposing raw OAuth tokens.

02

Offer native integrations without owning OAuth infrastructure

Give your customers a one-click connect flow to any of 900+ third-party APIs while offloading OAuth, token refresh, retries, and rate limiting. Your team ships integrations instead of maintaining credential storage.

03

Power scheduled data syncs into your product's backend

Run incremental syncs on a schedule to pull your customers' CRM, HRIS, or ticketing data into your own database, vector store, or search index. Ideal for RAG pipelines, analytics, or building a local cache of records.

04

Support deeply customized enterprise environments

Deploy per-customer sync and action functions that handle bespoke custom fields, custom objects, and non-standard endpoints. Enterprise buyers get the exact data model they need without you writing rigid unified schemas.

05

Proxy real-time API calls through a single unified auth layer

Route live CRUD requests through a proxy that injects the correct end-user credentials at request time. Query native provider APIs directly without maintaining a normalized cache.

What You Can Build

Ship these features with Truto + Nango

Concrete product features your team can ship faster by leveraging Truto’s Nango integration instead of building from scratch.

01

Embedded Connect flow for end-user authentication

Generate short-lived connect sessions server-side and render an in-app flow that maps each of your users to their own integration credentials.

02

Auto-generated LLM tool schemas

Fetch script configs in OpenAI function-calling format so your deployed actions become tools your agents can call with zero manual schema authoring.

03

Per-tenant scheduled syncs with pause/resume controls

Start, pause, and bulk-tune sync schedules per connection so you can offer different data freshness SLAs across pricing tiers.

04

Async write actions with status polling

Trigger long-running write operations asynchronously and poll for completion, letting your product offload retries and rate-limit handling entirely.

05

Records API-powered ingestion pipelines

Pull added, updated, and deleted records incrementally into your warehouse or vector DB, and prune stale data when a customer disconnects.

06

Custom integration builder for enterprise deals

Deploy customer-specific TypeScript sync and action functions on demand to support bespoke fields, objects, and endpoints for high-value accounts.

SuperAI

Nango AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

list_all_nango_integrations

List all integrations in Nango. Returns: created_at, updated_at, name.

get_single_nango_integration_by_id

Get a single Nango integration by its unique key. Returns: created_at, updated_at, data. Required: id. Use the include query parameter to retrieve webhook_url or credentials.

create_a_nango_integration

Create a new integration in Nango. Returns: created_at, updated_at, data. Required: unique_key, provider.

update_a_nango_integration_by_id

Update an existing Nango integration by its unique key. Returns: created_at, updated_at, data. Required: id.

delete_a_nango_integration_by_id

Delete a Nango integration by its unique key. Returns: data. Required: id.

create_a_nango_connect_session

Create a short-lived (30 minute) connect session in Nango for the Connect UI auth flow. Returns: token, connect_link, expires_at. Optional tags are copied onto the created connection and included in auth webhooks.

nango_connect_sessions_reconnect

Create a reconnect session in Nango to re-establish a connection with new credentials or manually refresh a token. Returns: token, connect_link, expires_at. Required: connection_id, integration_id. Only connections originally created with a connect session are compatible.

list_all_nango_connect_session

Retrieve a Nango connect session with its allowed integrations and default connection configurations. Returns: token, connect_link, expires_at.

nango_connect_session_bulk_delete

Delete a Nango connect session. Returns an empty 204 response on success.

create_a_nango_connection

Create (upsert) a Nango connection for which you already have credentials. Returns the connection object including id, connection_id, provider, provider_config_key, created, credentials, metadata, tags, and errors. Required: provider_config_key, credentials.

list_all_nango_connections

List Nango connections without credentials. Returns per connection: id, connection_id, provider, provider_config_key, created, metadata, tags, and errors.

get_single_nango_connection_by_id

Get a specific Nango connection with its credentials by id. Returns the full connection object including id, connection_id, provider, provider_config_key, created, credentials, metadata, tags, and errors. Required: id, provider_config_key.

update_a_nango_connection_by_id

Edit a Nango connection by id, updating its tags or webhook URL override. Returns: success. Required: id, provider_config_key.

nango_connections_set_metadata

Set (replace) custom metadata for one or more Nango connections. Pass an array of connection IDs to update multiple connections at once — if any ID is invalid the entire operation is aborted with no changes made. Returns: connection_id, provider_config_key, metadata, error. Required: connection_id, provider_config_key, metadata.

delete_a_nango_connection_by_id

Delete a Nango connection by id. Returns: success. Required: id, provider_config_key.

nango_connections_bulk_update

Edit custom metadata for one or more Nango connections, overriding only the specified properties without replacing the entire metadata object. Pass a single connection ID string or an array of IDs to update multiple at once; if any ID in an array is invalid the entire operation is aborted with no changes made. Returns: connection_id, provider_config_key, metadata, error. Required: connection_id,…

list_all_nango_connection

List nango connections (without credentials). Returns each connection's id, connection_id, provider, provider_config_key, created, metadata, tags, and errors. Optionally filter by connectionId for an exact match, search for a partial match, or tags to match all specified tag key-value pairs.

get_single_nango_connection_by_id

Get a specific nango connection with its credentials by id. Returns: id, connection_id, provider_config_key, provider, errors, end_user, metadata, connection_config, tags, created_at, updated_at, last_fetched_at, credentials, created, error. Required: id, provider_config_key.

create_a_nango_connection

Add a nango connection for which you already have credentials using the deprecated `/connection` endpoint. Returns an empty 200 response on success. Required: provider_config_key. Supply credential fields appropriate to the auth type (OAuth2, OAuth1, Basic, API Key, etc.).

nango_connection_set_metadata

Set custom metadata on one or more nango connections using the deprecated `/connection/metadata` endpoint. Replaces the entire metadata object. Returns: connection_id, provider_config_key, metadata, error. Required: connection_id, provider_config_key, metadata. Pass an array of connection IDs in connection_id to update multiple connections at once.

nango_connection_set_metadata_legacy

Set metadata on a single nango connection using the legacy path-based endpoint. The request body is a free-form metadata object whose keys and values replace the connection's metadata. Returns an empty 201 response on success. Required: connection_id.

nango_connection_update_metadata_legacy

Update custom metadata for a specific Nango connection using the deprecated per-connection path endpoint. Only overrides specified properties without replacing the entire metadata object. Returns the updated metadata as user-defined key-value pairs. Required: connection_id. Deprecated — prefer the bulk_update method targeting /connection/metadata.

delete_a_nango_connection_by_id

Delete a specific Nango connection by id (deprecated endpoint; use /connections/{connectionId} instead). Returns: success, error. Required: id, provider_config_key.

nango_connection_bulk_update

Update custom metadata for one or more Nango connections (deprecated endpoint; use /connections/metadata instead). Only overrides specified properties without replacing the entire metadata object. Returns: connection_id, provider_config_key, metadata, error. Required: connection_id, provider_config_key, metadata. If one connection_id in an array is invalid the entire operation is aborted.

list_all_nango_functions

List functions deployed to a Nango integration, optionally filtered by type or name. Returns each function's id, name, type, enabled, last_deployed, and source. Required: unique_key.

get_single_nango_function_by_id

Get a single deployed function by id. Returns the function's id, name, type, description, enabled, last_deployed, and source. Required: unique_key, id.

nango_functions_get_code

Get the TypeScript source code of a deployed function. Returns: type, code, data. Required: unique_key, function_id.

delete_a_nango_function_by_id

Delete a deployed Nango function and enqueue its async teardown. Returns: success, added, updated, deleted. Required: unique_key, id, type. Functions managed by nango deploy (repo source) cannot be deleted.

nango_functions_compile

Compile TypeScript function source code into bundled JavaScript. Returns: added, updated, deleted. Required: code.

nango_functions_create_dryrun

Start an asynchronous dry run of TypeScript function source code against a Nango connection without deploying it. Returns: id, status, created_at, added, updated, deleted. Required: integration_id, function_type, code, connection_id.

nango_functions_get_dryrun

Get the status and result of an asynchronous function dry run in Nango. Returns: id, created_at, updated_at, data. Required: dryrun_id.

nango_functions_create_deployment

Deploy a function to an existing Nango integration using submitted TypeScript source code (type: function) or a provider template (type: template). Returns: id, status, created_at, added, updated, deleted. Required: type, integration_id, and either function_name, function_type, and code (for type: function) or template (for type: template).

nango_functions_get_deployment

Get the status and result of an asynchronous function deployment in Nango. Returns: id, created_at, updated_at, data. Required: deployment_id.

nango_scripts_get_config

Get configuration for all integration functions in Nango. Returns: data. Pass format=openai to receive the configuration in OpenAI function-calling format instead of the standard Nango format.

list_all_nango_records

List synced records from Nango for a given data model, ordered by modification date ascending. Returns: id, _nango_metadata. Required: model. The filter parameter accepts added, updated, or deleted; a response may contain fewer records than the limit when records have a large size.

nango_records_prune

Prune synced record payloads for a given connection and model using cursor-based pagination — empties the record payload while preserving metadata. Returns: count, has_more. Required: model, until_cursor. When has_more is true, make another request with the same until_cursor to continue pruning. The limit parameter (batch size) defaults to 1000 with a maximum of 10000.

nango_sync_trigger

Trigger a one-off execution of specified sync(s) in Nango for a given connection, or for all applicable connections if no connection is specified. Returns: success, added, updated, deleted. Required: provider_config_key, syncs.

nango_sync_start

Start the schedule of specified sync(s) in Nango for a given connection, or for all applicable connections if no connection is specified. The sync executes immediately upon starting and then continues at the configured frequency. If the schedule was already started, this has no effect. Returns: success, added, updated, deleted. Required: provider_config_key, syncs.

nango_sync_pause

Pause the schedule of specified sync(s) in Nango for a given connection, or for all applicable connections if no connection is specified. Returns: success, added, updated, deleted. Required: provider_config_key, syncs.

nango_sync_get_status

Get the status of specified sync(s) in Nango for a given connection, or for all applicable connections if no connection is specified. Returns: id, connection_id, name, variant, status, type, finishedAt, nextScheduledSyncAt, frequency, latestResult, recordCount, checkpoint. Required: provider_config_key, syncs.

nango_sync_bulk_update

Override a sync's default execution frequency for a specific connection in Nango, or revert to the default frequency by passing null for frequency. Returns: frequency, added, updated, deleted. Required: provider_config_key, connection_id, sync_name, frequency. Min frequency is 30 seconds.

list_all_nango_environment_variables

List environment variables configured in the Nango dashboard. Returns: name, value for each variable.

create_a_nango_sync_variant

Create a new sync variant for a specific connection in Nango. Returns: id, name, variant, added, updated, deleted. Required: name, variant, provider_config_key, connection_id. The variant name cannot be 'base' (protected).

delete_a_nango_sync_variant_by_id

Delete a sync variant for a specific connection in Nango. Returns: success, added, updated, deleted. Required: name, id, provider_config_key, connection_id.

nango_actions_trigger

Trigger an action for a Nango connection. When triggered synchronously, returns the action's result data (max 10MB). When triggered asynchronously via the x_async header, Returns: id, statusUrl, your-properties. Required: action_name, connection_id, provider_config_key.

list_all_nango_proxy

Forward a GET request to an external API through the Nango Proxy. Returns the external API's response body, headers, and status code exactly as received (opaque passthrough). Required: any_path.

create_a_nango_proxy

Forward a POST request with a JSON body to an external API through the Nango Proxy. Returns the external API's response body, headers, and status code exactly as received (opaque passthrough). Required: any_path.

nango_proxy_bulk_update

Forward a PUT request with a JSON body to an external API through the Nango Proxy. Returns the external API's response body, headers, and status code exactly as received (opaque passthrough). Required: any_path.

nango_proxy_bulk_partial_update

Forward a PATCH request with a JSON body to an external API through the Nango Proxy. Returns the external API's response body, headers, and status code exactly as received (opaque passthrough). Required: any_path.

nango_proxy_bulk_delete

Forward a DELETE request to an external API through the Nango Proxy. Returns the external API's response body, headers, and status code exactly as received (opaque passthrough). Required: any_path.

list_all_nango_providers

List all available Nango providers. Returns: name, display_name, auth_mode, logo_url, categories, proxy, authorization_url, authorization_url_encode, access_token_url, token_url_encode, token_url, authorization_params, scope_separator, default_scopes, token_params, authorization_url_replacements, authorization_url_fragment, redirect_uri_metadata, token_response_metadata, docs,…

get_single_nango_provider_by_id

Get a single Nango provider by id. Returns: name, display_name, auth_mode, logo_url, categories, proxy, authorization_url, authorization_url_encode, access_token_url, token_url_encode, token_url, authorization_params, scope_separator, default_scopes, token_params, authorization_url_replacements, authorization_url_fragment, redirect_uri_metadata, token_response_metadata, docs,…

nango_providers_list_templates

List template functions available in the Nango catalog for a provider. Returns: name, type, description, scopes, input, returns, json_schema, runs, auto_start, track_deletes. Each item is a sync or action template function with its input/output schema and schedule. Required: provider.

Why Truto

Why use Truto’s MCP server for Nango

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 650+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

How It Works

From zero to integrated

Go live with Nango in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Nango account

Use Truto’s frontend SDK to connect your customer’s Nango account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Nango

Truto’s Proxy API is a 1-to-1 mapping of the Nango API. You call us, we call Nango, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Nango’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Nango on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

How do end users authenticate their third-party accounts?

You create a connect session server-side, then render the connect flow in your app. Once the user completes it, a connection is created that securely stores and refreshes their credentials, and you reference it by connection ID for all subsequent API calls.

Can we support custom fields and custom objects?

Yes. Because integrations are code-first TypeScript functions running on a managed runtime, you can define syncs and actions that read and write any custom fields or objects the underlying API supports — you're not constrained to a fixed normalized schema.

How is data freshness controlled?

Syncs run on a schedule you configure per connection. You can start, pause, trigger on demand, and bulk-update sync configurations, which lets you offer different refresh frequencies to different customer tiers.

How do we expose integrations to an LLM agent?

Deploy your actions as functions, then fetch the script config in an OpenAI-compatible tool-calling format. The resulting JSON schema can be passed directly to your model as available tools, and each invocation runs scoped to a specific user's connection.

Are rate limits, retries, and token refresh handled automatically?

Yes. The platform manages OAuth token refresh, retries, rate-limit backoff, and pagination for supported providers, so proxy calls, syncs, and actions don't need that logic reimplemented in your codebase.

Can we run long-running write operations without blocking our app?

Actions can be triggered asynchronously, returning an execution ID you can poll for status. This offloads retry and error-handling burden while keeping your user-facing surface responsive.

Nango

Get Nango integrated into your app

Our team understands what it takes to make a Nango integration successful. A short, crisp 30 minute call with folks who understand the problem.