Snipcart Domains API

Manage allowed domains for your store

OpenAPI Specification

snipcart-domains-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Snipcart REST AbandonedCarts Domains API
  description: 'The Snipcart REST API provides programmatic access to your store''s data including orders, customers, products, discounts, notifications, abandoned carts, domains, refunds, user sessions, and custom shipping methods. Authentication uses HTTP Basic Auth with a secret API key generated from the merchant dashboard. All requests must include an Accept: application/json header.

    '
  version: '3.0'
  contact:
    name: Snipcart Support
    url: https://snipcart.com
  license:
    name: Proprietary
    url: https://snipcart.com/terms-of-service
servers:
- url: https://app.snipcart.com/api
  description: Snipcart API
security:
- basicAuth: []
tags:
- name: Domains
  description: Manage allowed domains for your store
paths:
  /settings/domain:
    get:
      summary: Get default domain
      operationId: getDefaultDomain
      description: Retrieves your current default domain and its protocol configuration.
      tags:
      - Domains
      responses:
        '200':
          description: Default domain
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Domain'
    put:
      summary: Update default domain
      operationId: updateDefaultDomain
      description: Updates your default domain with optional protocol specification.
      tags:
      - Domains
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - name
              properties:
                name:
                  type: string
                protocol:
                  type: string
                  enum:
                  - https
                  - http
      responses:
        '200':
          description: Updated domain
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Domain'
  /settings/alloweddomains:
    get:
      summary: List allowed domains
      operationId: listAllowedDomains
      description: Fetches a complete list of all permitted domains and subdomains (excluding the default domain).
      tags:
      - Domains
      responses:
        '200':
          description: List of allowed domains
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Domain'
    post:
      summary: Add allowed domains
      operationId: addAllowedDomains
      description: Adds new domains or subdomains to your allowed list; returns the updated collection.
      tags:
      - Domains
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - domains
              properties:
                domains:
                  type: array
                  items:
                    type: string
      responses:
        '200':
          description: Updated list of allowed domains
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Domain'
    delete:
      summary: Remove allowed domains
      operationId: removeAllowedDomains
      description: Removes specified domains or subdomains from your allowed list; returns remaining domains.
      tags:
      - Domains
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - domains
              properties:
                domains:
                  type: array
                  items:
                    type: string
      responses:
        '200':
          description: Updated list of allowed domains after removal
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Domain'
components:
  schemas:
    Domain:
      type: object
      properties:
        name:
          type: string
          description: Domain name
        protocol:
          type: string
          enum:
          - https
          - http
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: 'Use your secret API key as the username with an empty password. Base64-encode as {API_KEY}: and pass as Authorization: Basic {encoded}.

        '