Skip to content

Application Development

Caspio
API integration

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

Talk to us
Caspio

Use Cases

Why integrate with Caspio

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

01

Sync custom Caspio databases with your SaaS data model

Customers use Caspio as a bespoke system of record with user-defined tables and fields. Offering a native Caspio integration lets your users map their custom schema to your product's objects and keep records in sync bidirectionally.

02

Trigger real-time workflows from Caspio form submissions

When end users submit DataPage forms or update records in Caspio, your product can react instantly via outgoing webhooks instead of polling. Ideal for automation, notification, and data enrichment platforms.

03

Process documents and attachments uploaded through Caspio

Many Caspio apps collect file uploads like receipts, contracts, or medical records. OCR, e-signature, and document processing SaaS can pull these attachments, process them, and write results back to the originating record.

04

Embed Caspio DataPages inside your SaaS UI

Pull deployment metadata for a customer's Bridge Applications and DataPages so your product can render their custom forms and dashboards natively, removing tab-switching for support, ops, and analytics workflows.

05

Provision and deprovision Caspio users from your platform

HR, IAM, and security tools can manage Caspio directory users programmatically, creating, activating, updating, or deleting accounts as employees and contractors onboard or offboard.

What You Can Build

Ship these features with Truto + Caspio

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

01

Dynamic schema mapping UI

Use list_all_caspio_tables and list_all_caspio_fields to render a field mapper that lets users connect their custom Caspio columns to your product's objects without code changes.

02

Two-way record sync with upserts

Read, create, update, and delete rows in any customer-defined Caspio table using the record endpoints to maintain a continuously synced dataset between Caspio and your app.

03

Auto-configured webhook subscriptions

Programmatically register outgoing webhooks during onboarding via create_a_caspio_outgoing_webhook so your customers don't have to configure event delivery manually.

04

Attachment and file ingestion pipeline

Fetch uploaded files and attachments using the file, attachment, and file info endpoints to feed documents into OCR, classification, or archival workflows, then write metadata back to the record.

05

Embedded DataPage renderer

Retrieve Bridge Application and DataPage deployment details to securely embed a customer's existing Caspio forms, search interfaces, or reports inside your product's UI.

06

Caspio user lifecycle automation

Create, activate, update, and remove Caspio users tied to specific directories based on events in your platform, keeping access aligned with employment or subscription status.

SuperAI

Caspio 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_caspio_tables

List all available caspio tables. Returns a collection of table definitions.

create_a_caspio_table

Create a new caspio table with the provided table definition. Returns an empty 201 response on success.

get_single_caspio_table_by_id

Get a single caspio table by id. Returns the table definition from the Result field. Required: id.

list_all_caspio_fields

List all field definitions for a Caspio table. Returns an array of field objects including Name, Type, Label, Unique, and Editable. Required: table_name.

create_a_caspio_field

Add a new field to a Caspio table. Returns an empty 201 response on success. Required: table_name, Name, Type.

update_a_caspio_field_by_id

Update the definition of an existing field in a Caspio table. Returns an empty 204 response on success. Required: table_name, id.

delete_a_caspio_field_by_id

Delete a field from a Caspio table by id. Returns an empty 204 response on success. Required: table_name, id.

get_single_caspio_field_by_id

Get the definition of a single field in a Caspio table by id. Returns: Name, Type, Label, Unique, Editable, and full field properties. Required: table_name, id.

list_all_caspio_records

List records from a Caspio table. Returns an array of record objects. Supports SQL-style filtering, field selection, grouping, and ordering. Required: table_name.

create_a_caspio_record

Insert a new record into a Caspio table. Returns the inserted record when response is set to 'rows', or a 201 Created response with no body otherwise. Required: table_name.

update_a_caspio_record_by_id

Update records in a Caspio table that match a WHERE clause. Returns affected records and their count when response is 'rows', or only the count otherwise. Required: table_name, q.where.

delete_a_caspio_record_by_id

Delete records from a Caspio table that match a WHERE clause. Returns the count of deleted records. Required: table_name, q.where.

list_all_caspio_password_fields

List all password fields for a caspio table. Returns the collection of password field definitions associated with the specified table. Required: table_name.

update_a_caspio_password_field_by_id

Update a password field's value in a caspio table for records matching a WHERE clause. Required: table_name, id (the password field name), and q.where.

delete_a_caspio_password_field_by_id

Reset a caspio table password field value for records matching a WHERE clause. Required: table_name, id (the password field name), and q.where.

update_a_caspio_attachment_by_id

Upload or overwrite a file in a Caspio table attachment field for a specific record. Returns an empty 204 response on success. Required: table_name, attachment_field_name, id, and a File payload.

delete_a_caspio_attachment_by_id

Delete a file from a Caspio table attachment field for records matching a WHERE clause. Required: table_name, attachment_field_name, q.where.

get_single_caspio_attachment_by_id

Get the binary file content of a specific attachment from a Caspio table attachment field by record id. Returns binary file content. Required: table_name, attachment_field_name, id.

list_all_caspio_file_infos

List file metadata for a Caspio table attachment field. Returns file info records from the specified attachment field. Required: table_name, attachment_field_name.

update_a_caspio_file_info_by_id

Update a file name in a Caspio table attachment field. Returns affected records and their count when response is 'rows', or only the count of affected records otherwise. Required: table_name, attachment_field_name, q.where.

list_all_caspio_views

List all views in Caspio. Returns a collection of view objects in the Result array.

get_single_caspio_view_by_id

Get a single Caspio view by id. Returns the view object from the Result field. Required: id.

list_all_caspio_files_folders

List Caspio folders within a specified parent folder or the root folder. Returns: Name, ExternalKey, DateCreated for each folder. Optionally supply externalKey to list subfolders of a specific parent; omit it to list root-level folders.

get_single_caspio_files_folder_by_id

Get a single Caspio folder by id. Returns folder details including Name, ExternalKey, and DateCreated. Requires id.

list_all_caspio_files

List Caspio files in a specified folder. Returns: Name, ExternalKey, Size, ContentType, DateCreated, LastModified for each file. Defaults to the root folder when externalKey is omitted.

create_a_caspio_file

Upload one or more files to the Caspio Files area using multipart/form-data. Returns the created file details. Required: Files. Specify a destination folder with externalKey; returns a conflict error if a file with the same name already exists.

update_a_caspio_file_by_id

Upload or overwrite a single file in the Caspio Files area using multipart/form-data. If a file with the same name exists it is overwritten; otherwise a new file is created. Required: File. Optionally target a specific folder with externalKey.

delete_a_caspio_file_by_id

Delete a Caspio file by id. Returns an empty 204 response on success. Required: id.

get_single_caspio_file_by_id

Get a single Caspio file by id. Required: id.

list_all_caspio_path_file_infos

Get file metadata from Caspio by file path. Returns file information from the Result object. Required: filePath.

list_all_caspio_files_paths

Get a Caspio file by path, returning its content as a binary attachment. Required: filePath.

delete_a_caspio_files_path_by_id

Delete a Caspio file by path. Returns an empty 204 response on success. Required: filePath.

list_all_caspio_outgoing_webhooks

List all available outgoing webhooks in Caspio. Returns an array of webhook objects.

create_a_caspio_outgoing_webhook

Create a new outgoing webhook in Caspio. Returns the created webhook object. Required: Name (must be unique) and OutgoingUrls (must be unique, valid HTTPS addresses).

get_single_caspio_outgoing_webhook_by_id

Get a single Caspio outgoing webhook definition by id. Returns the webhook object including activity data (Messages, Calls, Errors) from the last 30 days. Required: id.

update_a_caspio_outgoing_webhook_by_id

Update an existing Caspio outgoing webhook definition by id. Returns the updated webhook object. Required: id. At least one of Name, Description, OutgoingUrls, CallThrottling, or Enabled must be provided in the body.

delete_a_caspio_outgoing_webhook_by_id

Delete a Caspio outgoing webhook and all its associated events by id. Returns an empty 204 response on success. Required: id.

list_all_caspio_data_import_export_tasks

List all scheduled data import/export tasks in Caspio. Returns the full list of task objects from the Result collection.

get_single_caspio_data_import_export_task_by_id

Get a single Caspio data import/export task by id. Returns the task object from the Result field. Required: id.

create_a_caspio_run

Run a scheduled data import/export task in Caspio by its external key. Returns an empty 204 response on success. Required: external_key.

list_all_caspio_bridge_applications

List all Caspio bridge applications. Returns a collection of bridge application objects from the Caspio account.

get_single_caspio_bridge_application_by_id

Get a single Caspio bridge application by id. Returns the full application object for the specified bridge application. Required: id.

list_all_caspio_datapages

List all DataPages for a Caspio bridge application. Returns a collection of DataPage properties. Required: external_key (the App ID of the bridge application).

get_single_caspio_datapage_by_id

Get a single Caspio DataPage by id within a bridge application. Returns DataPage properties for the specified entry. Required: external_key (the App ID) and id.

update_a_caspio_deployment_by_id

Deploy or un-deploy a specific Caspio DataPage. Returns an empty 204 response on success. Required: external_key, app_key.

get_single_caspio_deployment_by_id

Get the deploy code for a specific Caspio DataPage by deployment method. Returns the deploy code string (iFrame, URL, Embedded, or .Net format). Required: external_key, app_key, method.

caspio_deployments_bulk_update

Deploy or un-deploy all DataPages for a Caspio bridge application in a single call. Returns an empty 204 response on success. Required: external_key.

list_all_caspio_directories

List all directories in Caspio. Returns a collection of directory objects from the Result field of the response.

list_all_caspio_users

List users in a Caspio directory. Returns user records including directory table fields plus _status, _sign_in_method, and _2fa_status attributes. Required: directory_id.

create_a_caspio_user

Create a user in a Caspio directory. Returns the newly created user record when response is set to "rows", or only a 201 status otherwise. Required: directory_id.

update_a_caspio_user_by_id

Update users in a Caspio directory that match a WHERE clause. Returns updated records when response is set to "rows". Required: directory_id, Where. Note: _status, _sign_in_method, and _2fa_status are not supported in the WHERE clause.

delete_a_caspio_user_by_id

Delete users from a Caspio directory that match a WHERE clause. Required: directory_id, Where. Note: _status, _sign_in_method, and _2fa_status are not supported in the WHERE clause.

create_a_caspio_users_activate

Activate a user in a Caspio directory. Returns an activation response including an ActivationUrl that can be used to build a custom activation email when email sending is suppressed. Required: directory_id, UserGUID.

list_all_caspio_view_fields

List all fields defined on a Caspio view. Returns field metadata for each field in the view. Required: view_name.

get_single_caspio_view_field_by_id

Get a single field from a Caspio view by its field id. Returns field metadata for the specified field. Required: view_name, id.

list_all_caspio_view_records

List records from a Caspio view. Returns the records array from the specified view. Required: view_name.

create_a_caspio_view_record

Create a new record in a Caspio view. Required: view_name.

update_a_caspio_view_record_by_id

Update records in a Caspio view. Required: view_name.

delete_a_caspio_view_record_by_id

Delete records from a Caspio view. Required: view_name.

get_single_caspio_view_attachment_by_id

Get an attachment from a Caspio view record by attachment field name and record id. Required: view_name, attachment_field_name, id.

update_a_caspio_view_attachment_by_id

Update (replace) an attachment on a specific Caspio view record for the given attachment field. Required: view_name, attachment_field_name, id.

delete_a_caspio_view_attachment_by_id

Delete attachments from a Caspio view for the specified attachment field. Returns an empty response on success. Required: view_name, attachment_field_name.

list_all_caspio_view_file_infos

List file information for an attachment field within a Caspio view. Returns file info records from the specified attachment field. Required: view_name, attachment_field_name.

update_a_caspio_view_file_info_by_id

Update file information for an attachment field within a Caspio view. Required: view_name, attachment_field_name.

get_single_caspio_file_metadatum_by_id

Get metadata for a specific file in Caspio by id. Returns file information from the Caspio file repository. Required: id.

list_all_caspio_webhook_events

List all events associated with a specific Caspio outgoing webhook. Required: webhook_id.

create_a_caspio_webhook_event

Create a new event for a specific Caspio outgoing webhook. Required: webhook_id.

get_single_caspio_webhook_event_by_id

Get a single event from a Caspio outgoing webhook by id. Required: webhook_id, id.

update_a_caspio_webhook_event_by_id

Update an existing event on a Caspio outgoing webhook by id. Required: webhook_id, id.

delete_a_caspio_webhook_event_by_id

Delete an event from a Caspio outgoing webhook by id. Returns an empty response on success. Required: webhook_id, id.

Why Truto

Why use Truto’s MCP server for Caspio

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 500+ 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 Caspio in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Caspio account

Use Truto’s frontend SDK to connect your customer’s Caspio 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 Caspio

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

04

Unified response format

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

FAQs

Common questions about Caspio on Truto

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

How does authentication to Caspio work through Truto?

Caspio uses OAuth 2.0 client credentials issued per account. Truto handles the token exchange, storage, and refresh for each of your end users so you never touch credentials directly — you just call the unified tools with a connection identifier.

Can we work with custom tables and fields that vary per customer?

Yes. Caspio's data model is entirely user-defined, so the integration is built around schema discovery. Use list_all_caspio_tables and list_all_caspio_fields at runtime to fetch each customer's structure and drive a dynamic mapping experience.

How do we get real-time updates from Caspio instead of polling?

Caspio supports outgoing webhooks scoped to record events. You can create and manage subscriptions programmatically with create_a_caspio_outgoing_webhook and the webhook event endpoints, and receive normalized events through Truto.

Can we read and write file attachments?

Yes. Truto exposes endpoints for files, file infos, attachments, and folders, so you can list, fetch, upload, update, and delete binary content tied to records as well as standalone files in the Caspio Files area.

Does the integration support Caspio Views in addition to Tables?

Yes. There are dedicated tools for listing views, view fields, view records, view attachments, and view file infos, so you can read and write through Caspio Views the same way you would with base tables.

Can we manage Caspio users and directories from our app?

Yes. You can list directories and users, create new users, activate them, update their attributes, and delete them — making it straightforward to build provisioning, deprovisioning, and access management flows.

How do we handle large data exports?

For bulk movement, Caspio exposes data import/export tasks. You can list existing tasks, fetch a specific task, and trigger a run via create_a_caspio_run, which is more efficient than paginating millions of records through the standard record endpoints.

Caspio

Get Caspio integrated into your app

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

Talk to us