Nutshell Products API

The product catalog and product maps — instances of a product attached to a lead with quantity and custom pricing. 8 operation(s) across 6 path(s).

OpenAPI Specification

nutshell-products-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Nutshell Products API
  description: The most powerful API in the world
  version: 2.0.0
  contact:
    name: Nutshell Developers
    url: https://developers.nutshell.com
servers:
- url: https://app.nutshell.com/rest
  description: Nutshell REST API
tags:
- name: Products
paths:
  /products/{id}:
    get:
      tags:
      - Products
      summary: Get a product
      operationId: e524bd8b37d52ef8fa586cadacfbbe63
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Product
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductResponse'
      security:
      - basicAuth: []
    delete:
      tags:
      - Products
      summary: Delete a product
      operationId: 1fb8ea517bd0df4cfe5fedda69e56084
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductResponse'
        '204':
          description: No Content
      security:
      - basicAuth: []
  /products/{id}/undelete:
    post:
      tags:
      - Products
      summary: Undelete a product
      operationId: 799d14014dfe97d25006bd23aa1955de
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductResponse'
        '400':
          description: Bad Request
      security:
      - basicAuth: []
  /products:
    get:
      tags:
      - Products
      summary: List all products
      operationId: 09a50065f621a61a55b5bc5c0df3f338
      parameters:
      - name: q
        in: query
        description: Filter for matching name or sku
        schema:
          type: string
      - name: sort
        in: query
        schema:
          type: string
          enum:
          - name
          - -name
          - sku
          - -sku
      responses:
        '200':
          description: List of products
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductResponse'
      security:
      - basicAuth: []
  /productmaps/{id}:
    get:
      tags:
      - Products
      summary: Get lead product
      description: A product map is an instance of a product attached to a lead, including quantity and
        custom pricing information. This endpoint returns a single mapping between a particular product
        and lead.
      operationId: 741f6e4eb5abcbdfc94754dd76257d9e
      parameters:
      - name: id
        in: path
        description: ProductMap ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LeadProductMapResponse'
      security:
      - basicAuth: []
    patch:
      tags:
      - Products
      summary: Update a lead's product information.
      description: A product map is an instance of a product attached to a lead, including quantity and
        custom pricing information which this endpoint allows you to modify.
      operationId: 427685c90f14ed7ca22515715a03b4e4
      parameters:
      - name: id
        in: path
        description: ProductMap ID
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/productMapPatchInput'
      responses:
        '204':
          description: No Content
      security:
      - basicAuth: []
  /productMaps/{id}:
    delete:
      tags:
      - Products
      summary: Delete a product on a lead
      operationId: 7aa410de8a00f46edf22043fee324e39
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LeadProductMapResponse'
        '204':
          description: No Content
      security:
      - basicAuth: []
  /productmaps:
    get:
      tags:
      - Products
      summary: Get lead products
      description: A product map is an instance of a product attached to a lead, including quantity and
        custom pricing information. This endpoint returns all mappings between products and leads.
      operationId: 4bc737ff6f91aab43dc7617f2c36ab3c
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LeadProductMapResponse'
      security:
      - basicAuth: []
components:
  schemas:
    LeadProductMap:
      properties:
        id:
          description: The API ID of this entity, formatted {integer}-{entityType}
          type: string
          example: 3-contacts
        relationship: {}
        price:
          $ref: '#/components/schemas/value'
        name: {}
        unit: {}
        quantity:
          type: number
          format: float
        productType:
          type: string
          example: product
        links:
          properties:
            product:
              description: The product this map is for
              type: string
              example: 1-products
          type: object
      type: object
    LeadProductMapResponse:
      description: A full response object for a lead product map.
      properties:
        meta:
          $ref: '#/components/schemas/meta'
        productMaps:
          type: array
          items:
            $ref: '#/components/schemas/LeadProductMap'
      type: object
    Product:
      properties:
        id:
          description: The API ID of this entity, formatted {integer}-{entityType}
          type: string
          example: 3-contacts
        name: {}
        href: {}
        description: {}
        modifiedTime:
          type: integer
        deletedTime:
          type: string
          format: date-time
        sku: {}
        productType: {}
        prices:
          properties:
            1-markets:
              $ref: '#/components/schemas/productPrice'
          type: object
        price:
          $ref: '#/components/schemas/productPrice'
      type: object
    ProductResponse:
      description: A full response object for a product-related endpoint.
      properties:
        products:
          type: array
          items:
            $ref: '#/components/schemas/Product'
      type: object
    meta:
      description: Information about the Nutshell instance making the request
      properties:
        instanceId:
          description: The Nutshell instance ID
          type: string
          example: '12345'
        siteId:
          description: Site ID for WebFX customers
          type: string
      type: object
    productMapPatchInput:
      type: array
      items:
        properties:
          op: {}
          path:
            description: The path to the value you want to update
          value:
            description: The updated value
        type: object
    productPrice:
      properties:
        amount:
          type: number
        currency:
          type: string
        formatted:
          type: string
        currencySymbol:
          type: string
      type: object
    value:
      properties:
        formatted:
          description: The value formatted as a string
          type: string
          example: $100.00
        amount:
          description: The value as a number
          type: string
          example: '100.00'
        currency:
          description: The currency code
          type: string
          example: USD
      type: object
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic