Skip to main content
Squarespace is a platform to build and host websites and online stores. This connector reads the commerce data of one Squarespace site through the Squarespace Commerce APIs: orders and their line items, financial transactions (payments, fees and refunds), products and variants, inventory, store pages, discounts, and the site’s contacts and profiles (customers, subscribers and donors, with their order and donation totals).
The connector only reads data. It never creates, changes or deletes anything in Squarespace.
Squarespace only lets sites on the Advanced plan (formerly Commerce Advanced) generate the Developer API key this connector uses. Sites on other plans cannot be connected.

Configuring Squarespace as a Source

In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Squarespace option from the list of connectors. Click Next and you’ll be prompted to add your access.

1. Add account access

The connector uses a Developer API key of the site. To create it:
  1. Log in to Squarespace as the site owner or an administrator and open the site.
  2. Go to Settings > Developer Tools > Developer API Keys (in older menus: Settings > Advanced > Developer API Keys) and click Generate key.
  3. Name the key (for example, Nekt) and tick, with Read Only access, the permissions of the data you want: Orders, Transactions, Products, Inventory, Contacts, Profiles and Discounts.
  4. Copy the key. Squarespace shows it only once. The key does not expire while the site is active.
A key’s permissions cannot be changed later. If you need a permission you did not tick, generate a new key and update the source.
The following configurations are available:
  • API Key: the key copied above.
  • Start Date (advanced): only orders and transactions modified on or after this date are extracted. Leave it empty to extract the whole history. Products, inventory, discounts, contacts and profiles are always extracted in full.
Each API key belongs to one site. To extract several sites (for example, the sites an agency manages), create one source per site. Every table has a website_id column, so the tables of different sites can be combined in a Query.
Once you’re done, click Next.

2. Select streams

Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.
Tip: The stream can be found more easily by typing its name.
Each selected stream needs its permission on the API key (see the table below). If a stream that is read in full (FULL_TABLE) lacks its permission, the run stops before writing anything and lists the missing permissions. An incremental stream without its permission is skipped with a warning, and its table is left unchanged.
Select the streams and click Next.

3. Configure data streams

Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.
  • Layer: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
  • Folder: a folder can be created inside the selected layer to group all tables being created from this new data source.
  • Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster!
  • Sync Type: Orders, Order Line Items, Transactions and Products support INCREMENTAL, the recommended type: each run reads only what changed since the previous one. Product Variants, Inventory, Discounts, Contacts, Profiles, Store Pages and Website are FULL_TABLE: they are read in full on every run, so your tables always show their current state (a variant removed from a product, for example, leaves the table on the next run). Read more about Sync Types here.
Once you are done configuring, click Next.

4. Configure data source

Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). Optionally, you can define some additional settings:
  • Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource here.
  • Determine when to execute an Additional Full Sync. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while. It also removes from the incremental tables the products and orders deleted in Squarespace, and the lines removed from an existing order.
Once you are ready, click Next to finalize the setup.

5. Check your new source

You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.
For you to be able to see it on your Catalog, you need at least one successful source run.

Streams and Fields

Available streams

The table below lists every stream, its slug (the exact identifier to pass when creating the source via API), the API key permission it needs and a short description. Amounts are split into a _value column (decimal) and a _currency column (ISO code), for example grand_total_value and grand_total_currency. Lists such as line items, payments, images and notes are kept as JSON text in their own column; addresses are split into one column per field.

Fields by stream

Sales

One row per order (one-time and subscription orders), in every payment state, with totals, addresses and fulfillment status.Table: orders · Primary key: id · Sync: Incremental (modified_on)
One row per purchased item of an order: product, variant, SKU, quantity and unit price paid.Table: order_line_items · Primary key: order_id, id · Sync: Incremental (order_modified_on)
One row per financial document (one per order or donation): payments, processing fees, refunds, taxes and net totals.Table: transactions · Primary key: id · Sync: Incremental (modified_on)
Discounts and promo codes of the site, with their trigger, criteria, amount and usage.Table: discounts · Primary key: id · Sync: Full table

Catalog

Products of every type (physical, service, gift card and download), with visibility, store page, SEO and images.Table: products · Primary key: id · Sync: Incremental (modified_on)
One row per product variant: SKU, attributes, prices, sale price and shipping measurements.Table: product_variants · Primary key: product_id, id · Sync: Full table
Current stock of every physical and service product variant.Table: inventory · Primary key: variant_id · Sync: Full table
Store pages of the site; every product belongs to one store page.Table: store_pages · Primary key: id · Sync: Full table

People

Customers, mailing list subscribers and donors, with marketing opt-in and default shipping address.Table: contacts · Primary key: id · Sync: Full table
Customers, subscribers and donors with their order and donation totals.Table: profiles · Primary key: id · Sync: Full table

Site

The Squarespace site of the API key: title, URL, currency, language and time zone.Table: website · Primary key: id · Sync: Full table

Implementation Notes

What is not available

The Squarespace Commerce APIs do not expose site traffic analytics (visits, page views, traffic sources), form submissions, blog posts or page content, or email campaigns, so this connector cannot extract them. Appointments booked through Squarespace Scheduling come from Acuity Scheduling; use the Acuity connector for them.

Data Quality Considerations

  • Donations are not orders: they only appear in Transactions, with an empty sales_order_id.
  • Refunds made directly in the payment provider (for example, in Stripe or PayPal) are not reported by Squarespace; only refunds made in Squarespace appear in Transactions.
  • Stock: use the Inventory table for current stock. The variants column of Products reflects each product’s last change, not later sales.
  • Deleted records: products and orders deleted in Squarespace, and lines removed from an existing order (rare), stay in the incremental tables until the next full sync. Tables read in full, including Product Variants, drop them on the next run.
  • Contacts and Profiles describe the same people with the same id, which is also the customer_id of Orders. Profiles carry the order and donation totals; Contacts carry the marketing opt-in dates and the default shipping address.
  • Each run reads the changes made up to the moment it started. A change saved while a run is in progress is read by the next run (tables read in full pick it up at the end of the same run). Each incremental run also starts one hour before the point where the previous run stopped, as a margin for changes Squarespace records late. A row read twice is kept once in the table.

API Limits & Performance

  • Squarespace allows 300 requests per minute per site. The connector stays below that; if Squarespace still asks it to slow down (for example, because other integrations use the same site), the run waits about a minute and continues.
  • Orders, transactions and products are read 50 per request; contacts up to 1,000 per request. Orders are read in two passes (by payment state) and products in four (one per product type), so a run makes a few more requests than its number of pages. A pass that comes back empty (for example, a store with no gift cards) is double-checked with a few extra requests, shared by the streams of the run. Order Line Items and Product Variants read the order and product lists themselves, so selecting them adds one request per 50 orders or products.

Troubleshooting

Skills for agents

Download Squarespace skills file

Squarespace connector documentation as plain markdown, for use in AI agent contexts.