---
title: Caspio API Integration on Truto
slug: caspio
category: Application Development
canonical: "https://truto.one/integrations/detail/caspio/"
---

# Caspio API Integration on Truto



**Category:** Application Development  
**Status:** Generally available

## MCP-ready AI tools

Truto exposes 70 tools for Caspio that AI agents can call directly.

- **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.

## How it works

1. **Link your customer's Caspio account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Caspio.** The Proxy API is a 1-to-1 mapping of the Caspio API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **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.
- **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.
- **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.
- **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.
- **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

- **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.
- **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.
- **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.
- **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.
- **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.
- **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.

## FAQs

### 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.

## Related reading

- [Connect Caspio to Claude: Sync Webhooks, Users, and DataPages](https://truto.one/blog/connect-caspio-to-claude-sync-webhooks-users-and-datapages/) — A complete engineering guide to connecting Caspio to Claude via a managed MCP server. Automate DataPages, trigger import tasks, and manage directory users.
- [Connect Caspio to ChatGPT: Automate Tables, Records, and Files](https://truto.one/blog/connect-caspio-to-chatgpt-automate-tables-records-and-files/) — Learn how to connect Caspio to ChatGPT using a managed MCP server. Automate tables, records, file attachments, and DataPage deployments using natural language.
- [Connect Caspio to AI Agents: Orchestrate Data, Views, and Users](https://truto.one/blog/connect-caspio-to-ai-agents-orchestrate-data-views-and-users/) — Learn how to connect Caspio to AI agents using Truto's tools endpoint. This guide covers bypassing custom connector boilerplate to orchestrate databases and DataPages.
