Shopmonkey Customers API

Create, update, search, and manage customer records, emails, and phone numbers.

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/shopmonkey-customers-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 email required.

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

OpenAPI Specification

shopmonkey-customers-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Shopmonkey Appointments Customers API
  description: The Shopmonkey API is a REST API (current version v3) that lets auto, tire, and powersports repair shops integrate their Shopmonkey account - Work Orders, Customers, Vehicles, Parts/Inventory, Invoices/Payments, Appointments, Employees (Users), Locations, and Webhooks - with other business systems. Authentication is a Bearer API key generated in the Shopmonkey web app under Settings > Integration > API Keys. Error responses return a JSON body with success, code, message, and documentation_url fields. Rate limiting returns HTTP 429 with Retry-After, X-RateLimit-Limit-Minute, and X-RateLimit-Remaining-Minute headers; exact numeric limits are account-specific and not published. Paths and methods below are confirmed against the public Shopmonkey Developer docs at shopmonkey.dev; request/response schemas are modeled (best-effort) from the documented resource fields where full detail was not independently reconciled field-by-field.
  version: v3
  contact:
    name: Shopmonkey
    url: https://shopmonkey.dev
servers:
- url: https://api.shopmonkey.cloud/v3
  description: Shopmonkey production API (v3)
security:
- bearerAuth: []
tags:
- name: Customers
  description: Create, update, search, and manage customer records, emails, and phone numbers.
paths:
  /customer:
    post:
      operationId: createCustomer
      tags:
      - Customers
      summary: Create a new customer record
      description: CONFIRMED endpoint.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerInput'
      responses:
        '200':
          description: The created customer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
  /customer/{id}:
    parameters:
    - $ref: '#/components/parameters/Id'
    get:
      operationId: getCustomer
      tags:
      - Customers
      summary: Fetch a specific customer's details
      description: CONFIRMED endpoint.
      responses:
        '200':
          description: The requested customer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
    put:
      operationId: updateCustomer
      tags:
      - Customers
      summary: Update customer information
      description: CONFIRMED endpoint.
      responses:
        '200':
          description: The updated customer.
    patch:
      operationId: softDeleteCustomer
      tags:
      - Customers
      summary: Soft delete a customer
      description: CONFIRMED endpoint.
      responses:
        '200':
          description: The soft-deleted customer.
  /customer/search:
    post:
      operationId: searchCustomers
      tags:
      - Customers
      summary: Search customer entities
      description: CONFIRMED endpoint.
      responses:
        '200':
          description: Matching customers.
  /customer/search-by-email:
    post:
      operationId: searchCustomersByEmail
      tags:
      - Customers
      summary: Search customers by email address
      description: CONFIRMED endpoint.
      responses:
        '200':
          description: Matching customers.
  /customer/search-by-phone:
    post:
      operationId: searchCustomersByPhone
      tags:
      - Customers
      summary: Search customers by phone number
      description: CONFIRMED endpoint.
      responses:
        '200':
          description: Matching customers.
  /customer/{id}/vehicle:
    parameters:
    - $ref: '#/components/parameters/Id'
    get:
      operationId: listCustomerVehicles
      tags:
      - Customers
      summary: Retrieve vehicles linked to a customer
      description: CONFIRMED endpoint.
      responses:
        '200':
          description: Vehicles owned by the customer.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Vehicle'
  /customer/{id}/order:
    parameters:
    - $ref: '#/components/parameters/Id'
    get:
      operationId: listCustomerOrders
      tags:
      - Customers
      summary: Retrieve orders associated with a specific customer
      description: CONFIRMED endpoint.
      responses:
        '200':
          description: Orders for the customer.
  /customer/{parentId}/deferred_service:
    parameters:
    - name: parentId
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: listCustomerDeferredServices
      tags:
      - Customers
      summary: Find all Deferred Services by Customer
      description: CONFIRMED endpoint.
      responses:
        '200':
          description: Deferred services.
  /customer/{id}/email:
    parameters:
    - $ref: '#/components/parameters/Id'
    post:
      operationId: addCustomerEmail
      tags:
      - Customers
      summary: Create a new email for the specified customer
      description: CONFIRMED endpoint.
      responses:
        '200':
          description: Added email.
  /customer/{id}/email/{emailId}:
    parameters:
    - $ref: '#/components/parameters/Id'
    - name: emailId
      in: path
      required: true
      schema:
        type: string
    put:
      operationId: updateCustomerEmail
      tags:
      - Customers
      summary: Update the specified email for a customer
      description: CONFIRMED endpoint.
      responses:
        '200':
          description: Updated email.
    delete:
      operationId: deleteCustomerEmail
      tags:
      - Customers
      summary: Delete the specified email for a customer
      description: CONFIRMED endpoint.
      responses:
        '200':
          description: Deleted.
  /customer/{id}/phone:
    parameters:
    - $ref: '#/components/parameters/Id'
    put:
      operationId: updateCustomerPhone
      tags:
      - Customers
      summary: Update a customer's phone number
      description: CONFIRMED endpoint.
      responses:
        '200':
          description: Updated phone.
  /customer/{id}/phone/{phoneId}:
    parameters:
    - $ref: '#/components/parameters/Id'
    - name: phoneId
      in: path
      required: true
      schema:
        type: string
    delete:
      operationId: deleteCustomerPhone
      tags:
      - Customers
      summary: Remove a phone number from a customer record
      description: CONFIRMED endpoint.
      responses:
        '200':
          description: Deleted.
components:
  parameters:
    Id:
      name: id
      in: path
      required: true
      schema:
        type: string
      description: Resource identifier.
  schemas:
    CustomerInput:
      type: object
      required:
      - firstName
      - lastName
      properties:
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
        phone:
          type: string
      additionalProperties: true
    Customer:
      type: object
      properties:
        id:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        emails:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              email:
                type: string
        phones:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              number:
                type: string
      additionalProperties: true
      description: MODELED from documented customer email/phone sub-resources.
    Vehicle:
      type: object
      properties:
        id:
          type: string
        vin:
          type: string
        year:
          type: string
        make:
          type: string
        model:
          type: string
        submodel:
          type: string
        licensePlate:
          type: string
      additionalProperties: true
      description: MODELED from documented vehicle lookup endpoints (years/makes/models/submodels/vin/ymm).
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'API key generated in the Shopmonkey web app under Settings > Integration > API Keys, sent as `Authorization: Bearer <token>`.'
externalDocs:
  description: Shopmonkey Developer documentation
  url: https://shopmonkey.dev/overview