Title: CWS API Table Sync
Author: cameronwebservices
Published: <strong>October 8, 2026</strong>
Last modified: October 8, 2026

---

Search plugins

![](https://ps.w.org/cws-api-table-sync/assets/icon-256x256.png?rev=3735412)

# CWS API Table Sync

 By [cameronwebservices](https://profiles.wordpress.org/cameronwebservices/)

[Download](https://downloads.wordpress.org/plugin/cws-api-table-sync.1.5.3.zip)

 * [Details](https://zgh.wordpress.org/plugins/cws-api-table-sync/#description)
 * [Reviews](https://zgh.wordpress.org/plugins/cws-api-table-sync/#reviews)
 *  [Installation](https://zgh.wordpress.org/plugins/cws-api-table-sync/#installation)
 * [Development](https://zgh.wordpress.org/plugins/cws-api-table-sync/#developers)

 [Support](https://wordpress.org/support/plugin/cws-api-table-sync/)

## Description

CWS API Table Sync turns structured REST/JSON API data into a synchronized local
WordPress database table.

Instead of requesting an external API whenever a visitor loads a page, the plugin
fetches data during synchronization, maps selected JSON fields to typed local database
columns, and renders frontend tables from the local WordPress database.

This is useful for structured datasets such as directories, inventory, financial
data, public datasets, listings, events, jobs, catalogs, and other API-fed information.

#### Features

 * Connect to multiple REST/JSON endpoints.
 * Test API connectivity and inspect JSON response structure.
 * Detect record collections inside nested JSON responses.
 * Map API fields to typed custom database columns.
 * Select a stable external ID for record updates.
 * Synchronize manually or through the scheduled WordPress cron event.
 * Support page-number pagination.
 * Support no authentication, Bearer tokens, Basic Authentication, and custom authentication
   headers/API keys.
 * Snapshot mode for showing only the latest successful synchronization.
 * Historical mode for retaining unique synchronized records across runs.
 * Store the original record JSON alongside mapped columns.
 * Configure frontend column labels, visibility, order, value formatting, prefix/
   suffix, and alignment.
 * Render synchronized data with a shortcode.
 * Keep frontend rendering local: the shortcode does not call the external API during
   page loads.
 * Optionally remove plugin data when the plugin is deleted. Deactivation does not
   delete persistent data.

#### Basic Workflow

 1. Open CWS API Table Sync > Sources.
 2. In Source Settings, enter a name and REST/JSON endpoint. Choose authentication 
    and pagination only when your API requires them, then click Save Endpoint.
 3. Use Test Connection to check the saved endpoint. Results appear beside the button.
 4. In Inspect Sample Data, inspect the API response and select the collection of records
    when the response contains nested data.
 5. In Map Fields, choose the fields to store and a stable external ID, then create
    the local table.
 6. In Display Columns, set headings, visibility, formatting, and optional text prefixes/
    suffixes. Drag the handles or use Move up / Move down to reorder columns, then 
    click Save Display Settings.
 7. In Synchronize Data, click Sync Now and check the result beside the button.
 8. Add [cws_api_table_sync] to a Shortcode block in a post or page.

Successful setup actions open the next accordion section. You can reopen a completed
section to change its settings. You can configure multiple sources. Select Add New
Source to create another connection; each source has independent mapping, synchronization,
and display settings.

#### Shortcode

Render the configured source:

[cws_api_table_sync]

Render a source by its stable source slug:

[cws_api_table_sync source=”source-slug”]

Set rows per page, from 1 through 100 (default 25). Navigation appears above and
below tables with more than one page:

[cws_api_table_sync limit=”50″]

Choose navigation placement with pagination=”top”, “bottom”, or “both”:

[cws_api_table_sync limit=”10″ pagination=”both”]

Use pagination=”none” to display only the first limited set of rows:

[cws_api_table_sync limit=”10″ pagination=”none”]

Frontend pagination works independently of API fetching pagination, respects shortcode
filters and sorting, and gives each table its own page parameter.

Frontend rendering reads synchronized records from the local WordPress database.
It does not contact the configured API during the page request.

#### Upgrading existing installations

Existing source records and synchronized database tables are preserved. Existing
wp_api_table_sync shortcodes in page content and text widgets are translated during
rendering. For PHP templates or direct do_shortcode calls, use cws_api_table_sync.

#### External Services and Privacy

CWS API Table Sync connects to API endpoint URLs explicitly configured by a site
administrator.

When a connection is tested, inspected, or synchronized, WordPress sends an HTTP
request to the configured external API. Depending on the API and the administrator’s
configuration, that request can include authentication credentials such as a Bearer
token, Basic Authentication credentials, or a custom API-key header.

The plugin does not send plugin usage telemetry to Cameron Web Services and does
not contact a Cameron Web Services service as part of normal operation.

The configured external API is a third-party service chosen by the site administrator.
Its privacy policy, terms, data handling, availability, and usage limits are controlled
by that API provider. Site administrators are responsible for ensuring that their
use of an API and synchronized data complies with the provider’s terms and applicable
privacy requirements.

API credentials are stored in the site’s WordPress database as part of the source
configuration. They are not copied into synchronized record data or rendered on 
the frontend.

#### Data Removal

Deactivating CWS API Table Sync preserves its configuration and synchronized data.

By default, deleting the plugin also preserves its data. Administrators can explicitly
enable “Delete all plugin data when the plugin is deleted” under CWS API Table Sync
> Settings. When enabled, uninstall cleanup removes plugin-owned source metadata,
synchronized data tables, plugin settings, transients, and the scheduled synchronization
event.

## Screenshots

[⌊Free source setup with authentication and pagination controls.⌉⌊Free source setup
with authentication and pagination controls.⌉[

Free source setup with authentication and pagination controls.

[⌊Free display columns with drag handles, keyboard ordering controls, formatting,
and alignment.⌉⌊Free display columns with drag handles, keyboard ordering controls,
formatting, and alignment.⌉[

Free display columns with drag handles, keyboard ordering controls, formatting, 
and alignment.

[⌊Frontend table with fictional JSONPlaceholder records rendered locally and styled
by the Astra theme.⌉⌊Frontend table with fictional JSONPlaceholder records rendered
locally and styled by the Astra theme.⌉[

Frontend table with fictional JSONPlaceholder records rendered locally and styled
by the Astra theme.

## Installation

 1. Upload the cws-api-table-sync folder to /wp-content/plugins/, or install the plugin
    ZIP using Plugins > Add Plugin > Upload Plugin.
 2. Activate CWS API Table Sync under Plugins.
 3. No account or licence is required.
 4. Open CWS API Table Sync > Sources and follow the five setup sections described 
    above.
 5. Add [cws_api_table_sync] to a Shortcode block and view the page after a successful
    synchronization.

Requires WordPress 6.4 or later and PHP 8.0 or later. Your server must be able to
reach your configured API endpoint. Scheduled synchronization uses WordPress cron,
which depends on site traffic unless your host runs it on a schedule.

## FAQ

### Do I need an account or licence?

No. All included features work without an account or licence.

### Does the shortcode call the external API when a visitor loads the page?

No. The shortcode reads previously synchronized data from the local WordPress database.

### Does the plugin store API data as WordPress posts or post meta?

No. Mapped API data is stored in plugin-owned custom database tables.

### Can I use an API that requires authentication?

Yes. The current version supports Bearer tokens, Basic Authentication, and custom
authentication headers/API keys.

### What happens if I deactivate the plugin?

Persistent configuration and synchronized data are retained. The scheduled synchronization
event is cleared while the plugin is inactive.

### Can the plugin delete its data when removed?

Yes, but only when the administrator explicitly enables the data-removal option 
in Settings before deleting the plugin.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“CWS API Table Sync” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ cameronwebservices ](https://profiles.wordpress.org/cameronwebservices/)

[Translate “CWS API Table Sync” into your language.](https://translate.wordpress.org/projects/wp-plugins/cws-api-table-sync)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/cws-api-table-sync/),
check out the [SVN repository](https://plugins.svn.wordpress.org/cws-api-table-sync/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/cws-api-table-sync/)
by [RSS](https://plugins.trac.wordpress.org/log/cws-api-table-sync/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.5.3

 * Add side spacing to the dashboard preview record count and pagination buttons.

#### 1.5.2

 * Show the synchronized source after submitting Sync Now without JavaScript.
 * Complete opt-in uninstall cleanup of synchronization locks, legacy settings, 
   transients, and administrator dashboard preferences.

#### 1.5.1

 * Place the dashboard source selector above the summary and switch immediately 
   on selection.
 * Remember each administrator’s dashboard source independently of the shortcode
   default.

#### 1.5.0

 * Support multiple sources throughout configuration, synchronization, and rendering.
 * Use distinctive CWSATS symbols and the cws_api_table_sync shortcode.
 * Preserve existing source settings and synchronized database tables.
 * Remove the optional sales SDK and exclude development files from distribution.

#### 1.4.1

 * Update authentication labels and placeholders when the selected method changes.

## Meta

 *  Version **1.5.3**
 *  Last updated **18 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.4 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 8.0 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/cws-api-table-sync/)
 * Tags
 * [api](https://zgh.wordpress.org/plugins/tags/api/)[database](https://zgh.wordpress.org/plugins/tags/database/)
   [JSON](https://zgh.wordpress.org/plugins/tags/json/)[rest-api](https://zgh.wordpress.org/plugins/tags/rest-api/)
   [synchronization](https://zgh.wordpress.org/plugins/tags/synchronization/)
 *  [Advanced View](https://zgh.wordpress.org/plugins/cws-api-table-sync/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/cws-api-table-sync/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/cws-api-table-sync/reviews/)

## Contributors

 *   [ cameronwebservices ](https://profiles.wordpress.org/cameronwebservices/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/cws-api-table-sync/)