Squarespace · OpenAPI Overlay 1.0.0
API Evangelist enrichment overlay — Commerce API
9 actions
9 updates
update
extends
openapi/squarespace-commerce-api-v2-openapi.json
Generated by API Evangelist
Written by API Evangelist tooling for Squarespace's API. It is a proposal applied on top of the contract, not a document Squarespace publishes.
What the actions change
x-idempotencyx-lifecyclex-apievangelistx-oauth2-undeclaredx-runtimex-undeclared-responsesx-rate-limit-override
Targets 7
$.info
$
$.paths.*.*[?(@.responses)]
$.paths['/1.0/commerce/inventory/adjustments'].post
$.paths['/1.0/commerce/orders'].post
$.paths['/1.0/profiles'].get
$.paths['/1.0/profiles/{profileIdCsvs}'].get
OpenAPI Overlay
overlay: 1.0.0
info:
title: API Evangelist enrichment overlay — Commerce API
version: 1.0.0
x-generated: '2026-08-13'
x-method: generated
x-source: openapi/squarespace-commerce-api-v2-openapi.json
extends: openapi/squarespace-commerce-api-v2-openapi.json
actions:
- target: $.info
description: Attach API Evangelist provenance and cross-links to the repo artifacts that carry runtime
semantics this contract does not express.
update:
x-apievangelist:
provider: squarespace
enriched: '2026-08-13'
artifacts:
conventions: conventions/squarespace-conventions.yml
errors: errors/squarespace-problem-types.yml
authentication: authentication/squarespace-authentication.yml
scopes: scopes/squarespace-scopes.yml
rate_limits: rate-limits/squarespace-rate-limits.yml
lifecycle: lifecycle/squarespace-lifecycle.yml
changelog: changelog/squarespace-changelog.yml
data_model: data-model/squarespace-data-model.yml
plans: plans/squarespace-plans-pricing.yml
- target: $
description: Document the OAuth 2.0 flow Squarespace operates but does not declare in securitySchemes.
Endpoints and scopes are transcribed from https://developers.squarespace.com/oauth.
update:
x-oauth2-undeclared:
note: Squarespace supports OAuth 2.0 authorization code alongside the bearer API key, but only the
http bearer scheme is declared in this contract.
authorizationUrl: https://login.squarespace.com/api/1/login/oauth/provider/authorize
tokenUrl: https://login.squarespace.com/api/1/login/oauth/provider/tokens
scopeDelimiter: ','
scopes: scopes/squarespace-scopes.yml
accessTokenTTL: 30m
- target: $
description: Record the runtime limits and required headers that apply to every operation in this document.
update:
x-runtime:
rateLimit:
window: 1m
limit: 300
status: 429
cooldown: 1m
headers: []
note: No RateLimit-*, X-RateLimit-* or Retry-After headers are published.
requiredHeaders:
- name: Authorization
note: Bearer API key or OAuth access token.
- name: User-Agent
note: REQUIRED. Requests without a User-Agent are rejected; default client User-Agents may be
rate-limited harder.
httpsOnly: true
cors: false
pagination:
style: cursor
param: cursor
pageSize: 50
responseObject: pagination
fields:
- hasNextPage
- nextPageCursor
- nextPageUrl
note: Dynamic cursors — they point at a location, not a snapshot, so the result set can shift
while paging.
errorEnvelope: proprietary (type/subtype/message/details/contextId); not RFC 9457
- target: $.paths.*.*[?(@.responses)]
description: Every operation can return 402 WEBSITE_EXPIRED when the merchant site is in an expired
billing state. Documented since 2021-11-30 but declared on zero operations in the published contract.
update:
x-undeclared-responses:
- status: 402
type: WEBSITE_EXPIRED
source: https://developers.squarespace.com/commerce-apis/responses-error-handling
- target: $.paths['/1.0/commerce/inventory/adjustments'].post
description: Idempotency-Key is REQUIRED on this operation; keys are guaranteed effective for 48 hours
and a replay returns the original response.
update:
x-idempotency:
required: true
header: Idempotency-Key
maxLength: 64
format: alphanumeric, dashes and underscores; UUIDs valid
retention: 48h
replay: returns the original response
source: https://developers.squarespace.com/commerce-apis/idempotency-key
- target: $.paths['/1.0/commerce/orders'].post
description: Idempotency-Key is REQUIRED on this operation; keys are guaranteed effective for 48 hours
and a replay returns the original response.
update:
x-idempotency:
required: true
header: Idempotency-Key
maxLength: 64
format: alphanumeric, dashes and underscores; UUIDs valid
retention: 48h
replay: returns the original response
source: https://developers.squarespace.com/commerce-apis/idempotency-key
- target: $.paths['/1.0/commerce/orders'].post
description: This operation carries a second, stricter rate limit of 100 requests per hour per website
when authenticated with an API key. OAuth callers are exempt.
update:
x-rate-limit-override:
window: 1h
limit: 100
scope: per-website
appliesTo: api-key
exempt: oauth
source: https://developers.squarespace.com/commerce-apis/rate-limits
- target: $.paths['/1.0/profiles'].get
description: The Profiles API entered maintenance mode on 2026-04-09. The contract does not mark it
deprecated; this overlay records the announced status and its replacement.
update:
x-lifecycle:
status: maintenance
announcedOn: '2026-04-09'
replacedBy: Contacts API
replacementUrl: https://developers.squarespace.com/commerce-apis/contacts-overview
sunset: null
source: https://developers.squarespace.com/commerce-apis/changelog
- target: $.paths['/1.0/profiles/{profileIdCsvs}'].get
description: The Profiles API entered maintenance mode on 2026-04-09. The contract does not mark it
deprecated; this overlay records the announced status and its replacement.
update:
x-lifecycle:
status: maintenance
announcedOn: '2026-04-09'
replacedBy: Contacts API
replacementUrl: https://developers.squarespace.com/commerce-apis/contacts-overview
sunset: null
source: https://developers.squarespace.com/commerce-apis/changelog