The connector only reads data. It never creates, changes or deletes anything in Squarespace.
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:- Log in to Squarespace as the site owner or an administrator and open the site.
- Go to Settings > Developer Tools > Developer API Keys (in older menus: Settings > Advanced > Developer API Keys) and click Generate key.
- 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. - 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.
- 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.
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.
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.
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.
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.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
Orders
Orders
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)Order Line Items
Order Line Items
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)Transactions
Transactions
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
Discounts
Discounts and promo codes of the site, with their trigger, criteria, amount and usage.Table:
discounts · Primary key: id · Sync: Full tableCatalog
Products
Products
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)Product Variants
Product Variants
One row per product variant: SKU, attributes, prices, sale price and shipping measurements.Table:
product_variants · Primary key: product_id, id · Sync: Full tableInventory
Inventory
Current stock of every physical and service product variant.Table:
inventory · Primary key: variant_id · Sync: Full tableStore Pages
Store Pages
Store pages of the site; every product belongs to one store page.Table:
store_pages · Primary key: id · Sync: Full tablePeople
Contacts
Contacts
Customers, mailing list subscribers and donors, with marketing opt-in and default shipping address.Table:
contacts · Primary key: id · Sync: Full tableProfiles
Profiles
Customers, subscribers and donors with their order and donation totals.Table:
profiles · Primary key: id · Sync: Full tableSite
Website
Website
The Squarespace site of the API key: title, URL, currency, language and time zone.Table:
website · Primary key: id · Sync: Full tableImplementation 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
variantscolumn 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 thecustomer_idof 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.