Overview

Custom Connectors

Connect APIs, SaaS applications, and other systems that have no built-in connector by building a data connector extension.

Overview

A custom connector is a data connector extension: code you write and install on your Monospace instance (your running deployment) to reach a system Monospace has no built-in connector for. That system can be a SaaS API such as Stripe, an internal service, or a database without a native connector.

Its data appears as collections in a workspace. Callers use the same REST API, SDK, and Studio as for any database, under the same roles and permissions. Nothing is copied: each request the cache doesn't answer becomes a live query against the external system.

Warning
Extensions are in preview. The extension kit, CLI, manifest format, and data connector contract can change in breaking ways between releases. Use them in non-production environments only. See Stability.

How It Works

  1. Write it. Create a project with the Monospace CLI. Describe the extension in a config file and write the connector in TypeScript.
  2. Build it. The CLI validates the config and bundles the code into a build.
  3. Install it. Copy the build into your instance's extensions directory.
  4. Connect it. Add a data source in the Studio. The Studio offers installed data connectors alongside the built-in connectors, each marked Extension.

The connector runs inside your instance, isolated from Monospace itself. It can reach only the network hosts you approve for it, and every other network request fails.

Get Started

PageCovers
Data Connector QuickstartBuild a read-only connector for the Art Institute of Chicago API, install it, and query it in the Studio
Build a Stripe Data ConnectorA larger connector with writes and tests, built against Stripe's test mode
Build Data Connectors with AI AgentsGive a coding agent the extension docs and a starter prompt, and see which steps still need you
Install and Manage ExtensionsWhere your instance loads extensions from, and how to update and remove them

Design a Connector

PageCovers
Data ConnectorsHow a request flows through a connector, and whether your system is a good fit
How Data Connectors RunWhere connector code runs, what it can use, and how it reaches the network
Map an External Data SourceTranslate a system's filters, paging, keys, writes, and errors onto the connector contract
Handle Data Connector ErrorsMap each failure to the right error class and keep secrets out of responses
Test a Data ConnectorTest from lint and unit tests up to the Studio
Manage Data SourcesCreate, update, recreate, and delete the data sources that use a connector

Look Up the Reference

PageCovers
Extension Config and Manifestextension.config.json, the built manifest.json, and the install directory layout
CLIThe monospace extension create and monospace extension build commands
Data Connector ModuleEvery export of @monospace/extension-kit/data-connector
Data Connector APIThe dataConnector entry, its handlers, the schema document, and query requests
Operations and OperatorsThe operations a collection declares and the filter operators each field type allows
Network PermissionsHow a connector declares the hosts it reaches, and how you approve them
Data Connector Runtime LimitsHard numbers and fixed rules at runtime
Data Connector LimitationsWhat a connector can't do today, and how to work around it

Request a Connector

If you'd rather not build a connector yourself, request a built-in connector on the roadmap.


See Also

  • Connectors — every way to connect a data source
  • Extensions — what extensions are and how they reach your instance
  • Data Model — collections, fields, and relations

MonospaceThe governed API layer for every app, person, and agent.

Copyright © 2026 Monospace Inc.