Squarespace Profiles API

The Squarespace Profiles API allows reading customer profiles, mailing list subscribers, and donors for a Squarespace site. It supports filtering by profile type and retrieving individual profile details.

Operations 4

GET /1.0/profiles List profiles #
GET /1.0/profiles/{profileIdCsvs} Get profiles #
GET /profiles Retrieve All Profiles #
GET /profiles/{profileIds} Retrieve Specific Profiles #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/squarespace-profiles-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

squarespace-profiles-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Squarespace Profiles API
  version: '1.0'
  description: 'Operations tagged Profiles across 2 of this provider''s published API definitions: squarespace-commerce-api-v2-openapi.json, squarespace-profiles-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.squarespace.com
  description: Commerce API
- url: https://api.squarespace.com/1.0
  description: Production Server
tags:
- name: Profiles
  x-zudoku-collapsed: true
paths:
  /1.0/profiles:
    get:
      description: Retrieves all profiles; profiles can be filtered and sorted. The response contains up to 50 Profiles and supports dynamic cursors for pagination.
      operationId: getProfiles
      parameters:
      - description: Identifies the sort direction of the result list; asc for ascending or dsc for descending. If not specified, the returned list is in descending order.
        in: query
        name: sortDirection
        required: false
        schema:
          type: string
      - description: 'Identifies the sort field of the result list. Values include: createdOn, id, email, or lastName. If not specified, the returned list is sorted by id.'
        in: query
        name: sortField
        required: false
        schema:
          type: string
      - description: 'Semicolon separated list used to filter profile results. Values include: isCustomer and/or hasAccount, or email. The email filter cannot be used with isCustomer or hasAccount.'
        in: query
        name: filter
        required: false
        schema:
          type: string
      - description: Email address filter (URL-encoded, case insensitive).
        in: query
        name: email
        required: false
        schema:
          type: string
      - description: Identifies where the next page of results should begin. Should be the value of pagination.nextPageCursor from a previous response. Cannot be used with other parameters.
        in: query
        name: cursor
        required: false
        schema:
          type: string
      - in: header
        name: Authorization
        required: true
        description: API key or OAuth access token
        schema:
          type: string
          default: Bearer YOUR_API_KEY_OR_OAUTH_TOKEN
      - in: header
        name: User-Agent
        required: true
        description: User Agent
        schema:
          type: string
          default: YOUR_CUSTOM_APP_DESCRIPTION
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedProfileListResponse'
          description: A paginated list of profiles.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Bad request.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Not found. The API version is not supported.
      summary: List profiles
      tags:
      - Profiles
      security:
      - Authorization: []
    servers:
    - url: https://api.squarespace.com
      description: Commerce API
  /1.0/profiles/{profileIdCsvs}:
    get:
      description: Retrieves information for specific profiles. The response contains a list of up to 50 Profiles. Multiple Profiles can be retrieved by providing a comma-separated list of profile ids.
      operationId: getSpecificProfiles
      parameters:
      - description: Specifies the profiles to retrieve. Multiple Profiles can be retrieved by providing a comma-separated list of profile ids.
        in: path
        name: profileIdCsvs
        required: true
        schema:
          type: string
      - in: header
        name: Authorization
        required: true
        description: API key or OAuth access token
        schema:
          type: string
          default: Bearer YOUR_API_KEY_OR_OAUTH_TOKEN
      - in: header
        name: User-Agent
        required: true
        description: User Agent
        schema:
          type: string
          default: YOUR_CUSTOM_APP_DESCRIPTION
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProfileListResponse'
          description: The requested profiles.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Bad request. ids specifies greater than 50 profiles.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Not found. One or more profiles were not found.
      summary: Get profiles
      tags:
      - Profiles
      security:
      - Authorization: []
    servers:
    - url: https://api.squarespace.com
      description: Commerce API
  /profiles:
    get:
      operationId: listProfiles
      summary: Retrieve All Profiles
      description: Returns a paginated list of profiles associated with the merchant site. Profiles represent customers, mailing list subscribers, and donors. By default returns up to 50 profiles per page. Results can be filtered by profile type, account status, or email address. Use the cursor parameter from the previous response's pagination.nextPageCursor to iterate through all profiles.
      tags:
      - Profiles
      parameters:
      - $ref: '#/components/parameters/cursor'
      - name: isCustomer
        in: query
        description: When true, filters results to only include customer profiles
        required: false
        schema:
          type: boolean
      - name: hasAccount
        in: query
        description: When true, filters to profiles associated with a Squarespace account. When false, filters to anonymous profiles.
        required: false
        schema:
          type: boolean
      - name: email
        in: query
        description: Filter profiles by exact email address match
        required: false
        schema:
          type: string
          format: email
      responses:
        '200':
          description: Successful response with paginated list of profiles
          content:
            application/json:
              schema:
                type: object
                properties:
                  profiles:
                    type: array
                    items:
                      $ref: '#/components/schemas/Profile_2'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - bearerAuth: []
    servers:
    - url: https://api.squarespace.com/1.0
      description: Production Server
  /profiles/{profileIds}:
    get:
      operationId: getProfiles
      summary: Retrieve Specific Profiles
      description: Retrieves profile information for one or more specific profiles by their profile IDs. Profile IDs can be provided as a comma-separated list in the path. The order of profiles in the response is not guaranteed to match the order of IDs provided.
      tags:
      - Profiles
      parameters:
      - $ref: '#/components/parameters/profileIds'
      responses:
        '200':
          description: Successful response with the requested profiles
          content:
            application/json:
              schema:
                type: object
                properties:
                  profiles:
                    type: array
                    items:
                      $ref: '#/components/schemas/Profile_2'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - bearerAuth: []
    servers:
    - url: https://api.squarespace.com/1.0
      description: Production Server
components:
  schemas:
    Profile:
      type: object
      properties:
        acceptsMarketing:
          type: boolean
          description: Indicates whether the profile opted to receive marketing.
        address:
          $ref: '#/components/schemas/Address'
        createdOn:
          type: string
          description: ISO 8601 UTC date and time string; represents when the profile was created.
          format: date-time
        email:
          type: string
          description: Profile email address.
        firstName:
          type: string
          description: Profile first name.
        hasAccount:
          type: boolean
          description: Indicates whether the profile has an account with the website.
        id:
          type: string
          description: Unique Profile id.
        isCustomer:
          type: boolean
          description: Indicates whether the profile has any commerce orders or donations with the website.
        lastName:
          type: string
          description: Profile last name.
        transactionsSummary:
          $ref: '#/components/schemas/TransactionsSummary'
    ProfileListResponse:
      type: object
      properties:
        profiles:
          type: array
          items:
            $ref: '#/components/schemas/Profile'
    TransactionsSummary:
      type: object
      properties:
        donationCount:
          type: integer
          description: Count of donations submitted.
          format: int32
        firstDonationSubmittedOn:
          type: string
          description: ISO 8601 UTC date and time string; represents when the profile's first donation was submitted.
          format: date-time
        firstOrderSubmittedOn:
          type: string
          description: ISO 8601 UTC date and time string; represents when the profile's first order was submitted.
          format: date-time
        lastDonationSubmittedOn:
          type: string
          description: ISO 8601 UTC date and time string; represents when the profile's latest donation was submitted.
          format: date-time
        lastOrderSubmittedOn:
          type: string
          description: ISO 8601 UTC date and time string; represents when the profile's latest order was submitted.
          format: date-time
        orderCount:
          type: integer
          description: Count of orders submitted.
          format: int32
        totalDonationAmount:
          $ref: '#/components/schemas/MonetaryAmount'
        totalOrderAmount:
          $ref: '#/components/schemas/MonetaryAmount'
        totalRefundAmount:
          $ref: '#/components/schemas/MonetaryAmount'
      description: Summary of profile's commerce transactions. If a profile has no commerce transactions, the object is still returned with null or 0 values. This information is calculated asynchronously; there may be a slight delay between when an order is created, and when it's reflected in the object.
    Address:
      type: object
      properties:
        address1:
          type: string
          description: Primary street address
          examples:
          - 459 Broadway
        address2:
          type: string
          description: Secondary address line
        city:
          type: string
          description: City
          examples:
          - New York
        countryCode:
          type: string
          description: ISO 3166-1 alpha-2 country code
          examples:
          - US
        firstName:
          type: string
          description: First name
          examples:
          - Bob
        lastName:
          type: string
          description: Last name
          examples:
          - Loblaw
        phone:
          type: string
          description: Phone number
          examples:
          - '5553334444'
        postalCode:
          type: string
          description: Postal or ZIP code
          examples:
          - '10003'
        state:
          type: string
          description: State or province
          examples:
          - NY
      description: Customer's shipping address provided at checkout or, for recurring subscription orders, the customer's current mailing address.
    PaginatedProfileListResponse:
      type: object
      properties:
        pagination:
          examples:
          - hasNextPage: true
            nextPageCursor: ewogICJhIiA6ICI2OWNhOWExZjgxNGMwYTY0MmIwMTIzYzkiLAogICJiIiA6ICJJRCIKfQ
            nextPageUrl: /1.0/profiles?cursor=ewogICJhIiA6ICI2OWNhOWExZjgxNGMwYTY0MmIwMTIzYzkiLAogICJiIiA6ICJJRCIKfQ
          type: object
          properties:
            hasNextPage:
              type: boolean
            nextPageCursor:
              type: string
            nextPageUrl:
              type: string
        profiles:
          type: array
          items:
            $ref: '#/components/schemas/Profile'
    StandardErrorPayload:
      type: object
      properties:
        contextId:
          type: string
        details:
          type: object
        message:
          type: string
        subtype:
          type: string
          enum:
          - MISSING_ARGUMENT
          - INVALID_ARGUMENT
          - INVALID_CONTENT_TYPE
          - CONCURRENT_MODIFICATION
          - INSUFFICIENT_STOCK
          - STOCK_NOT_TRACKED
          - STOCK_EXCEEDS_MAX
          - CURRENCY_MISMATCH
          - MEASUREMENT_STANDARD_MISMATCH
          - INSUFFICIENT_PRODUCT_VARIANTS
          - URL_SLUG_UNAVAILABLE
          - SKU_UNAVAILABLE
          - STORE_PAGE_NOT_FOUND
          - STORE_PAGE_PRODUCT_LIMIT_REACHED
          - IMAGE_LIMIT_REACHED
          - WEBHOOK_SUBSCRIPTION_LIMIT_REACHED
          - MISSING_SCOPE
          - PROFILE_CANNOT_ACCEPT_MARKETING
          - ENTITY_LIMIT_REACHED
          - PRODUCT_UPDATE_CONFLICT
          - DUPLICATE_USER_CONFLICT
          - PROMO_CODE_CONFLICT
          - INVENTORY_ITEM_NOT_FOUND
          - PRODUCT_IMAGE_NOT_FOUND
          - PRODUCT_VARIANT_NOT_FOUND
          - OAUTH_TOKEN_REQUIRED
          - FORBIDDEN_RESOURCE
          - OPERATION_NOT_ALLOWED_FOR_PRODUCT_TYPE
        type:
          type: string
          enum:
          - INVALID_REQUEST_ERROR
          - AUTHORIZATION_ERROR
          - WEBSITE_EXPIRED
          - METHOD_NOT_ALLOWED
          - CONFLICT
          - TOO_MANY_REQUESTS
          - SERVER_ERROR
          - SERVICE_UNAVAILABLE
    MonetaryAmount:
      type: object
      properties:
        currency:
          type: object
          description: ISO 4217 currency code.
          properties:
            currencyCode:
              type: string
            defaultFractionDigits:
              type: integer
              format: int32
            displayName:
              type: string
            numericCode:
              type: integer
              format: int32
            numericCodeAsString:
              type: string
            symbol:
              type: string
          examples:
          - USD
        value:
          type: number
          description: Decimal monetary value.
          examples:
          - 49.99
      description: A monetary amount with currency code and decimal value.
    Profile_2:
      type: object
      description: A profile representing a customer, mailing list subscriber, or donor associated with the Squarespace site
      properties:
        id:
          type: string
          description: Unique identifier for the profile
        firstName:
          type: string
          description: First name of the profile holder
        lastName:
          type: string
          description: Last name of the profile holder
        email:
          type: string
          format: email
          description: Email address associated with the profile
        hasAccount:
          type: boolean
          description: Whether the profile is linked to a Squarespace account
        isCustomer:
          type: boolean
          description: Whether the profile has placed at least one order
        address:
          $ref: '#/components/schemas/ApproximateAddress'
        commerceStats:
          $ref: '#/components/schemas/CommerceStats'
        createdOn:
          type: string
          format: date-time
          description: ISO 8601 UTC timestamp when the profile was created
        modifiedOn:
          type: string
          format: date-time
          description: ISO 8601 UTC timestamp when the profile was last modified
    ApproximateAddress:
      type: object
      description: An approximate address derived from the profile's order history and account information, not necessarily verified
      properties:
        city:
          type: string
          description: City associated with the profile
        state:
          type: string
          description: State or region associated with the profile
        countryCode:
          type: string
          description: ISO 3166-1 alpha-2 country code
          pattern: ^[A-Z]{2}$
        postalCode:
          type: string
          description: Postal or ZIP code associated with the profile
    Pagination:
      type: object
      description: Pagination metadata included with list responses
      properties:
        hasNextPage:
          type: boolean
          description: Indicates whether additional pages of results are available
        nextPageCursor:
          type: string
          description: Cursor value to pass in the next request to retrieve the next page
        nextPageUrl:
          type: string
          format: uri
          description: Full URL for retrieving the next page of results
    Money:
      type: object
      description: A monetary value with currency
      properties:
        value:
          type: string
          description: Decimal string representation of the monetary amount
          pattern: ^-?\d+(\.\d+)?$
        currency:
          type: string
          description: ISO 4217 three-letter currency code
          pattern: ^[A-Z]{3}$
    Error:
      type: object
      description: Standard error response returned by the Squarespace API
      properties:
        type:
          type: string
          description: Machine-readable error type identifier
        subtype:
          type: string
          description: Optional more specific error subtype
        message:
          type: string
          description: Human-readable description of the error
        statusCode:
          type: integer
          description: HTTP status code associated with the error
    CommerceStats:
      type: object
      description: A summary of the profile holder's commerce activity on the site
      properties:
        orderCount:
          type: integer
          description: Total number of orders placed by this profile
          minimum: 0
        orderTotal:
          $ref: '#/components/schemas/Money'
        donationCount:
          type: integer
          description: Total number of donations made by this profile
          minimum: 0
        donationTotal:
          $ref: '#/components/schemas/Money'
        firstOrderOn:
          type: string
          format: date-time
          description: ISO 8601 UTC timestamp of the profile's first order
        lastOrderOn:
          type: string
          format: date-time
          description: ISO 8601 UTC timestamp of the profile's most recent order
  parameters:
    cursor:
      name: cursor
      in: query
      description: Pagination cursor from a previous response's pagination.nextPageCursor field. Omit or leave empty to retrieve the first page.
      required: false
      schema:
        type: string
    profileIds:
      name: profileIds
      in: path
      description: Comma-separated list of profile IDs to retrieve
      required: true
      schema:
        type: string
  responses:
    BadRequest:
      description: The request was malformed or contained invalid parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: The authenticated user does not have permission to access this resource
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource was not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequests:
      description: Rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authentication credentials are missing or invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    Authorization:
      in: header
      scheme: bearer
      type: http
    bearerAuth:
      type: http
      scheme: bearer
      description: Authenticate using an API key or OAuth access token. Include the token in the Authorization header as "Bearer YOUR_TOKEN".
externalDocs:
  description: Squarespace Commerce API Documentation
  url: https://developers.squarespace.com/commerce-apis/overview
x-refined-from:
- squarespace-commerce-api-v2-openapi.json
- squarespace-profiles-api-openapi.yml