Purple Dot API

Purple Dot API as documented publicly: 13 operations. Contract generated from the documentation by API Evangelist (2026-10-29); not the provider's own document.

Operations 13

GET /admin/api/v1/fulfillment_order/a1b2c3d4-e5f6-7890-1234-567890abcdef GET /admin/api/v1/fulfillment_order/a1b2c3d4-e5f6-7890-1234-567890abcdef #
GET /admin/api/v1/fulfillment_orders GET /admin/api/v1/fulfillment_orders #
POST /admin/api/v1/inventory POST /admin/api/v1/inventory #
GET /admin/api/v1/pre-orders GET /admin/api/v1/pre-orders #
GET /admin/api/v1/pre-orders/count GET /admin/api/v1/pre-orders/count #
GET /admin/api/v1/pre-orders/count-units/sku/LRS221 GET /admin/api/v1/pre-orders/count-units/sku/LRS221 #
POST /admin/api/v1/refund POST /admin/api/v1/refund #
GET /admin/api/v1/waitlists GET /admin/api/v1/waitlists #
GET /api/v1/availability GET /api/v1/availability #
GET /api/v1/pre-orders GET /api/v1/pre-orders #
GET /api/v1/products/preorder-state GET /api/v1/products/preorder-state #
GET /api/v1/variants/preorder-state GET /api/v1/variants/preorder-state #
GET /api/v1/waitlists GET /api/v1/waitlists #

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/purple-dot:purple-dot-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

purple-dot-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: Purple Dot API
  version: '2026-10-29'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-29: 13 operation(s) read from 39 public documentation page(s) (each
    operation names its page in x-source). This is not the provider''s published contract; Purple Dot has published no machine-readable contract
    that the pipeline could find. Engine: anthropic.'
  x-evidence-tiers:
    code-example: 13
    documentation: 0
    pages-with-code: 21
    pages-read: 39
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-10-29'
  x-generator: generate-contract-from-docs.py
  x-engine: anthropic
  x-sources:
  - https://shopify.dev/docs/api/ajax/reference/cart
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/refund
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/refund-1
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/inventory
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/refund.md
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/waitlists
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/pre-orders
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/fulfillment
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/inventory-1
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/refund-1.md
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/waitlists-1
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/pre-orders-1
  - https://docs.getpurpledot.com/docs/purple-dot-apis/public-api/pre-orders.md
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/fulfillment-1
  - https://docs.getpurpledot.com/docs/purple-dot-apis/public-api/waitlists-1.md
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/inventory-1.md
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/waitlists-1.md
  - https://docs.getpurpledot.com/docs/purple-dot-apis/public-api/pre-orders-1.md
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/pre-orders-1.md
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/fulfillment-1.md
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/pre-orders-count
  - https://docs.getpurpledot.com/docs/purple-dot-apis/public-api/availability-1.md
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/planned_inventory
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/fulfillment-orders
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/pre-orders-count-1
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/fulfillment-orders-1
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/fulfillment-orders-id
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/pre-orders-count-1.md
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/fulfillment-orders-1.md
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/fulfillment-orders-id.md
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/fulfillment-orders-id-uuid
  - https://docs.getpurpledot.com/docs/purple-dot-apis/public-api/products-preorder-state-1.md
  - https://docs.getpurpledot.com/docs/purple-dot-apis/public-api/variants-preorder-state-1.md
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/fulfillment-orders-id-uuid.md
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/pre-orders-count-units-sku-sku
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/pre-orders-count-units-sku-sku-1
  - https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/pre-orders-count-units-sku-sku-1.md
  - https://docs.getpurpledot.com/docs/shopify-stores/pre-order-tracking/braze-integration
  - https://docs.getpurpledot.com/docs/shopify-stores/pre-order-tracking/braze-integration.md
servers:
- url: https://www.purpledotprice.com
paths:
  /admin/api/v1/fulfillment_order/a1b2c3d4-e5f6-7890-1234-567890abcdef:
    get:
      operationId: get_admin_api_v1_fulfillment_order_a1b2c3d4_e5f6_7890_1234_567890abcdef
      tags:
      - Admin
      summary: GET /admin/api/v1/fulfillment_order/a1b2c3d4-e5f6-7890-1234-567890abcdef
      x-source: https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/fulfillment-orders-id-uuid
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl --request GET  --url ''https://www.purpledotprice.com/admin/api/v1/fulfillment_order/a1b2c3d4-e5f6-7890-1234-567890abcdef''  --header
          ''X-Purple-Dot-Access-Token: <access_token>'''
  /admin/api/v1/fulfillment_orders:
    get:
      operationId: get_admin_api_v1_fulfillment_orders
      tags:
      - Admin
      summary: GET /admin/api/v1/fulfillment_orders
      x-source: https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/fulfillment-orders-1
      parameters:
      - name: created_at_min
        in: query
        required: false
        schema:
          type: string
      - name: limit
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl --request GET  --url ''https://www.purpledotprice.com/admin/api/v1/fulfillment_orders?created_at_min=2023-08-17T00:00:00.000Z&limit=1''  --header
          ''X-Purple-Dot-Access-Token: <access_token>'' Copy <incoming...> Copy curl --request GET  --url ''https://www.purpledotprice.com/admin/api/v1/fulfillment_orders?references=#PD12345678/2,#PD87654321/1''  --header
          ''X-Purple-Dot-Access-Token: <access_token>'''
  /admin/api/v1/inventory:
    post:
      operationId: post_admin_api_v1_inventory
      tags:
      - Admin
      summary: POST /admin/api/v1/inventory
      x-source: https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/inventory-1
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl --request POST  --url ' https://www.purpledotprice.com/admin/api/v1/inventory '  --header ' Content-Type: application/json\
          \ ' \n --header ' X-Purple-Dot-Access-Token: <access_token> ' \n --data ' {\"sku\": \"foo\", \"available_units\": 1} ' Copy { \n \"\
          \ data \" : { \n \" sku \" : \" foo \" , \n \" available_units \" : 1 \n } \n } Last updated 1 year ago"
  /admin/api/v1/pre-orders:
    get:
      operationId: get_admin_api_v1_pre_orders
      tags:
      - Admin
      summary: GET /admin/api/v1/pre-orders
      x-source: https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/pre-orders-1
      parameters:
      - name: all_line_items
        in: query
        required: false
        schema:
          type: string
      - name: created_at_min
        in: query
        required: false
        schema:
          type: string
      - name: limit
        in: query
        required: false
        schema:
          type: string
      - name: references
        in: query
        required: false
        schema:
          type: string
      - name: skus
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAdminApiV1PreOrdersResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl --request GET  --url 'https://www.purpledotprice.com/admin/api/v1/pre-orders?created_at_min=2023-08-17T00:00:00.000Z&references=%23PD325376&all_line_items=cancelled&skus=TEST1&limit=1'\
          \  --header 'X-Purple-Dot-Access-Token: <access_token>' Copy { \n \"meta\": { \n \"result\": \"success\" \n }, \n \"data\": { \n \"\
          orders\": [ \n { \n \"id\": \"58da51c9-9b48-48c6-beb5-46bd34834960\", \n \"reference\": \"#PD2850312\", \n \""
  /admin/api/v1/pre-orders/count:
    get:
      operationId: get_admin_api_v1_pre_orders_count
      tags:
      - Admin
      summary: GET /admin/api/v1/pre-orders/count
      x-source: https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/pre-orders-count-1
      parameters:
      - name: all_line_items
        in: query
        required: false
        schema:
          type: string
      - name: created_at_min
        in: query
        required: false
        schema:
          type: string
      - name: limit
        in: query
        required: false
        schema:
          type: string
      - name: skus
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl --request GET  --url 'https://www.purpledotprice.com/admin/api/v1/pre-orders/count?created_at_min=2023-08-17T00:00:00.000Z&all_line_items=cancelled&skus=TEST1&limit=1'\
          \  --header 'X-Purple-Dot-Access-Token: <access_token>' Copy { \n \" meta \" : { \n \" result \" : \" success \" \n }, \n \" data \"\
          \ : { \n \" count \" : 1 \n } \n } Last updated 9 months ago"
  /admin/api/v1/pre-orders/count-units/sku/LRS221:
    get:
      operationId: get_admin_api_v1_pre_orders_count_units_sku_LRS221
      tags:
      - Admin
      summary: GET /admin/api/v1/pre-orders/count-units/sku/LRS221
      x-source: https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/pre-orders-count-units-sku-sku-1
      parameters:
      - name: at_time
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl --request GET  --url 'https://www.purpledotprice.com/admin/api/v1/pre-orders/count-units/sku/LRS221?at_time=2023-08-18T09:57:49.576Z'\
          \  --header 'X-Purple-Dot-Access-Token: <access_token>' Copy { \n \" meta \" : { \n \" result \" : \" success \" \n }, \n \" data \"\
          \ : { \n \" sku \" : \" LRS221 \" , \n \" at_time \" : \" 2023-08-18T09:57:49.576Z \" , \n \" open_units \" : 14 , \n \" canceled_units\
          \ \" : 15 , \n \" exported_u"
  /admin/api/v1/refund:
    post:
      operationId: post_admin_api_v1_refund
      tags:
      - Admin
      summary: POST /admin/api/v1/refund
      x-source: https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/refund-1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostAdminApiV1RefundRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl --request POST  --url ''https://www.purpledotprice.com/admin/api/v1/refund''  --header ''Content-Type: application/json''  --header
          ''X-Purple-Dot-Access-Token: <access_token>''  --data ''{"id": "refund-001", "order": "gid://shopify/Order/123", "line_items": [{"id":
          "gid://shopify/LineItem/456", "quantity": 1}], "shipping": false}'' Copy curl --request POST  --url ''https://www.purpledotprice.com/admi'
  /admin/api/v1/waitlists:
    get:
      operationId: get_admin_api_v1_waitlists
      tags:
      - Admin
      summary: GET /admin/api/v1/waitlists
      x-source: https://docs.getpurpledot.com/docs/purple-dot-apis/private-api/waitlists-1
      parameters:
      - name: created_at_min
        in: query
        required: false
        schema:
          type: string
      - name: limit
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAdminApiV1WaitlistsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl --request GET  --url 'https://www.purpledotprice.com/admin/api/v1/waitlists?limit=1&created_at_min=2023-08-17T00:00:00.000Z'\
          \  --header 'X-Purple-Dot-Access-Token: <access_token>' Copy { \n \"meta\":{ \n \"result\":\"success\" \n }, \n \"data\":{ \n \"waitlists\"\
          :[ \n { \n \"id\":\"a2aecc56-ce64-49da-8ce6-099e664d85fd\", \n \"created_at\":\"2023-10-27T14:44:09.726Z\", \n \"earliest_ship_date\"\
          :\"2023-11-25T05:00:00.000Z\", "
  /api/v1/availability:
    get:
      operationId: get_api_v1_availability
      tags:
      - Api
      summary: GET /api/v1/availability
      x-source: https://docs.getpurpledot.com/docs/purple-dot-apis/public-api/availability-1.md
      parameters:
      - name: api_key
        in: query
        required: false
        schema:
          type: string
      - name: product_id
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl --request GET  --url ''https://www.purpledotprice.com/api/v1/availability?product_id=4697179062404&api_key=<...>''

          ```'
  /api/v1/pre-orders:
    get:
      operationId: get_api_v1_pre_orders
      tags:
      - Api
      summary: GET /api/v1/pre-orders
      x-source: https://docs.getpurpledot.com/docs/purple-dot-apis/public-api/pre-orders-1.md
      parameters:
      - name: api_key
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1PreOrdersResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl --request GET  --url ''https://www.purpledotprice.com/api/v1/pre-orders?api_key=<<enter-api-key>>&email=<<enter-email>>&timestamp=<<enter-timestamp>>&token=<<enter-generated-token>>''

          ```'
  /api/v1/products/preorder-state:
    get:
      operationId: get_api_v1_products_preorder_state
      tags:
      - Api
      summary: GET /api/v1/products/preorder-state
      x-source: https://docs.getpurpledot.com/docs/purple-dot-apis/public-api/products-preorder-state-1.md
      parameters:
      - name: api_key
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl --request GET  --url ''https://www.purpledotprice.com/api/v1/products/preorder-state?api_key=<...>&handle=womens-white-sneakers''

          ```'
  /api/v1/variants/preorder-state:
    get:
      operationId: get_api_v1_variants_preorder_state
      tags:
      - Api
      summary: GET /api/v1/variants/preorder-state
      x-source: https://docs.getpurpledot.com/docs/purple-dot-apis/public-api/variants-preorder-state-1.md
      parameters:
      - name: api_key
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl --request GET  --url ''https://www.purpledotprice.com/api/v1/variants/preorder-state?api_key=<...>&variant_id=55391387124086''

          ```'
  /api/v1/waitlists:
    get:
      operationId: get_api_v1_waitlists
      tags:
      - Api
      summary: GET /api/v1/waitlists
      x-source: https://docs.getpurpledot.com/docs/purple-dot-apis/public-api/waitlists-1.md
      parameters:
      - name: api_key
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl --request GET  --url ''https://www.purpledotprice.com/api/v1/waitlists?api_key=<...>

          ```'
components:
  schemas:
    GetAdminApiV1PreOrdersResponse:
      type: object
      properties:
        id:
          type: string
        reference:
          type: string
        cancel_reason:
          type:
          - string
          - 'null'
        cancelled_at:
          type:
          - string
          - 'null'
        created_at:
          type: string
          format: date-time
        currency:
          type: string
        email:
          type: string
        customer:
          type: object
          properties:
            email:
              type: string
            external_id:
              type: string
        line_items:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              total:
                type: number
              price:
                type: number
              product_id:
                type: string
              quantity:
                type: integer
              sku:
                type: string
              variant_id:
                type: string
              name:
                type: string
              earliest_ship_date:
                type: string
                format: date-time
              latest_ship_date:
                type: string
                format: date-time
              taxable:
                type: boolean
              tax_lines:
                type: array
                items:
                  type: object
                  properties:
                    price:
                      type: number
                    rate:
                      type: number
                    title:
                      type: string
                    inclusive:
                      type: boolean
              total_discount:
                type: number
              cancelled_at:
                type:
                - string
                - 'null'
              cancelled:
                type: boolean
        shipping_address:
          type: object
          properties:
            address1:
              type: string
            address2:
              type: string
            city:
              type: string
            country:
              type: string
            country_code:
              type: string
            first_name:
              type: string
            last_name:
              type: string
            phone:
              type: string
            province_code:
              type: string
            postal_code:
              type: string
        shipping_lines:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              code:
                type: string
              total:
                type: number
              price:
                type: number
              title:
                type: string
              tax_lines:
                type: array
                items:
                  type: object
                  properties:
                    price:
                      type: number
                    rate:
                      type: number
                    title:
                      type: string
                    inclusive:
                      type: boolean
              line_items:
                type: array
                items:
                  type: object
                  properties:
                    line_item_id:
                      type: string
        subtotal_price:
          type: number
        tax_lines:
          type: array
          items:
            type: object
            properties:
              price:
                type: number
              rate:
                type: number
              title:
                type: string
        tax_included:
          type: boolean
        total_discounts:
          type: number
        total_price:
          type: number
        total_tax:
          type: number
        total_refunded:
          type: number
        exported_orders:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              created_at:
                type: string
                format: date-time
              order_number:
                type: string
              line_items:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    line_item_id:
                      type: string
        sales_channel:
          type: string
        pos_sale:
          type:
          - string
          - 'null'
    PostAdminApiV1RefundRequest:
      type: object
      properties:
        id:
          type: string
        order:
          type: string
        line_items:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              quantity:
                type: integer
        shipping:
          type: boolean
    GetAdminApiV1WaitlistsResponse:
      type: object
      properties:
        id:
          type: string
        created_at:
          type: string
          format: date-time
        earliest_ship_date:
          type: string
          format: date-time
        latest_ship_date:
          type: string
          format: date-time
        state:
          type: string
        launch_date:
          type: string
          format: date-time
        labels:
          type: array
          items: {}
        availability:
          type: object
          properties:
            product:
              type: object
              properties:
                product_id:
                  type: string
                buy_size:
                  type: integer
                committed:
                  type: integer
                available:
                  type: integer
            variants:
              type: array
              items:
                type: object
                properties:
                  variant_id:
                    type: string
                  sku:
                    type: string
                  buy_size:
                    type: integer
                  committed:
                    type: integer
                  available:
                    type: integer
    GetApiV1PreOrdersResponse:
      type: object
      properties:
        pre_orders:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              reference:
                type: string
              created_at:
                type: string
                format: date-time
              total_amount:
                type: number
              currency:
                type: string
              line_items:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    estimated_ship_dates:
                      type: string
                    product_id:
                      type: string
                    variant_id:
                      type: string
                    order_id:
                      type:
                      - string
                      - 'null'
                    canceled:
                      type: boolean
              shipping_address:
                type: object
                properties:
                  first_name:
                    type: string
                  last_name:
                    type: string
                  address1:
                    type: string
                  address2:
                    type:
                    - string
                    - 'null'
                  city:
                    type: string
                  postal_code:
                    type: string
                  province_code:
                    type:
                    - string
                    - 'null'
                  country_code:
                    type: string
                  phone:
                    type: string
        has_more:
          type: boolean
        starting_after:
          type: string
tags:
- name: Admin
- name: Api