D-Tools Quotes API

The Quotes API from D-Tools — 2 operation(s) for quotes.

Operations 2

GET /api/v1/Quotes/GetQuotes
GET /api/v1/Quotes/GetQuote

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/d-tools-quotes-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

d-tools-quotes-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: D-Tools Cloud Quotes API
  description: API to integrate with the D-Tools Cloud application.
  termsOfService: https://www.d-tools.com/d-tools-software-terms-of-services
  contact:
    name: api@d-toolshelp.com
    email: api@d-toolshelp.com
  license:
    name: License Agreement
    url: https://www.d-tools.com/license-agreement
  version: v1
servers:
- url: https://dtcloudapi.d-tools.cloud
tags:
- name: Quotes
paths:
  /api/v1/Quotes/GetQuotes:
    get:
      tags:
      - Quotes
      parameters:
      - name: opportunityId
        in: query
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DTools.Cloud.Data.QuoteLite'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DTools.Cloud.Data.QuoteLite'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '500':
          description: Internal Server Error
  /api/v1/Quotes/GetQuote:
    get:
      tags:
      - Quotes
      parameters:
      - name: id
        in: query
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DTools.Cloud.Data.QuoteDetail'
            text/json:
              schema:
                $ref: '#/components/schemas/DTools.Cloud.Data.QuoteDetail'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '500':
          description: Internal Server Error
components:
  schemas:
    DTools.Cloud.Data.QuoteServicePlanLength:
      type: object
      properties:
        months:
          type: integer
          format: int32
        discount:
          type:
          - number
          - 'null'
          format: double
        isSuggested:
          type: boolean
      additionalProperties: false
    DTools.Cloud.Data.QuoteAdjustment:
      type: object
      properties:
        name:
          type:
          - string
          - 'null'
        isPercent:
          type: boolean
        percent:
          type:
          - number
          - 'null'
          format: double
        amount:
          type:
          - number
          - 'null'
          format: double
        isTaxable:
          type: boolean
        taxId:
          type:
          - integer
          - 'null'
          format: int32
        applyTo:
          type:
          - string
          - 'null'
          readOnly: true
      additionalProperties: false
    DTools.Cloud.Data.QuoteServicePlan:
      type: object
      properties:
        type:
          type:
          - string
          - 'null'
          readOnly: true
        name:
          type:
          - string
          - 'null'
        imageUrl:
          type:
          - string
          - 'null'
        description:
          type:
          - string
          - 'null'
        priceType:
          type:
          - string
          - 'null'
          readOnly: true
        fixedPrice:
          type:
          - number
          - 'null'
          format: double
        dynamicPriceFieldId:
          type:
          - string
          - 'null'
          readOnly: true
        dynamicPricePercent:
          type:
          - number
          - 'null'
          format: double
        priceInterval:
          type:
          - string
          - 'null'
          readOnly: true
        pricePerMonth:
          type: number
          format: double
        tax:
          type:
          - string
          - 'null'
        taxRate:
          type:
          - number
          - 'null'
          format: double
        length:
          type: integer
          format: int32
        lengthDiscount:
          type:
          - number
          - 'null'
          format: double
        billingFrequency:
          type:
          - string
          - 'null'
          readOnly: true
        billingFrequencyDiscount:
          type:
          - number
          - 'null'
          format: double
        estimatedStartDateType:
          type:
          - string
          - 'null'
          readOnly: true
        estimatedStartDate:
          type:
          - string
          - 'null'
          format: date-time
        estimatedStartDateDays:
          type:
          - integer
          - 'null'
          format: int32
        isClientAgreementRequired:
          type: boolean
        termsAndConditionsFileUrl:
          type:
          - string
          - 'null'
        termsAndConditionsText:
          type:
          - string
          - 'null'
        isRecommended:
          type: boolean
        isOptional:
          type: boolean
        isClientSelected:
          type: boolean
        isDeclined:
          type: boolean
        clusterId:
          type: string
          format: uuid
        lengths:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DTools.Cloud.Data.QuoteServicePlanLength'
        billingFrequencies:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DTools.Cloud.Data.QuoteServicePlanBillingFrequency'
        features:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DTools.Cloud.Data.QuoteServicePlanFeature'
        notes:
          type:
          - array
          - 'null'
          items:
            type: string
        files:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DTools.Cloud.Data.FileInfo'
      additionalProperties: false
    DTools.Cloud.Data.QuoteLength:
      type: object
      properties:
        id:
          type: integer
          format: int32
        name:
          type:
          - string
          - 'null'
        length:
          type: integer
          format: int32
      additionalProperties: false
    DTools.Cloud.Data.QuoteDetail:
      type: object
      properties:
        id:
          type: string
          format: uuid
        opportunityId:
          type: string
          format: uuid
        name:
          type:
          - string
          - 'null'
        number:
          type:
          - string
          - 'null'
        version:
          type: number
          format: double
        systemState:
          type:
          - string
          - 'null'
          readOnly: true
        state:
          type:
          - string
          - 'null'
        price:
          type: number
          format: double
        servicePrice:
          type:
          - number
          - 'null'
          format: double
        isIncludedInTotal:
          type: boolean
        projectArea:
          type:
          - integer
          - 'null'
          format: int32
        fulfillmentLocation:
          type:
          - string
          - 'null'
        isIgnoreItemLaborItems:
          type: boolean
        isExemptFromTax:
          type: boolean
        isServiceQuote:
          type: boolean
        validUntilDate:
          type:
          - string
          - 'null'
          format: date-time
        acceptedDate:
          type:
          - string
          - 'null'
          format: date-time
        createdDate:
          type: string
          format: date-time
        modifiedDate:
          type: string
          format: date-time
        scopeOfWork:
          type:
          - string
          - 'null'
        serviceContractDescription:
          type:
          - string
          - 'null'
        files:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DTools.Cloud.Data.FileInfo'
        planViews:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DTools.Cloud.Data.FileInfo'
        locations:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DTools.Cloud.Data.QuoteLocation'
        systems:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DTools.Cloud.Data.QuoteSystem'
        phases:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DTools.Cloud.Data.QuotePhase'
        laborTypes:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DTools.Cloud.Data.QuoteLaborType'
        lengths:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DTools.Cloud.Data.QuoteLength'
        discounts:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DTools.Cloud.Data.QuoteDiscount'
        alternateSets:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DTools.Cloud.Data.QuoteAlternateSet'
        items:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DTools.Cloud.Data.QuoteItem'
        adjustments:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DTools.Cloud.Data.QuoteAdjustment'
        taxSettings:
          $ref: '#/components/schemas/DTools.Cloud.Data.QuoteTaxSettings'
        taxes:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DTools.Cloud.Data.QuoteTax'
        paymentTerms:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DTools.Cloud.Data.QuotePaymentTerm'
        servicePlans:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DTools.Cloud.Data.QuoteServicePlan'
      additionalProperties: false
    DTools.Cloud.Data.QuoteServicePlanFeature:
      type: object
      properties:
        type:
          type:
          - string
          - 'null'
          readOnly: true
        price:
          type:
          - number
          - 'null'
          format: double
        priceInterval:
          type:
          - string
          - 'null'
          readOnly: true
        includedServiceCallType:
          type:
          - string
          - 'null'
          readOnly: true
        includedServiceCalls:
          type:
          - integer
          - 'null'
          format: int32
        hours:
          type:
          - integer
          - 'null'
          format: int32
        isAdditionalService:
          type: boolean
        additionalServicePrice:
          type:
          - number
          - 'null'
          format: double
        additionalServicePriceInterval:
          type:
          - string
          - 'null'
          readOnly: true
        serviceFrequency:
          type:
          - string
          - 'null'
          readOnly: true
        afterHoursServiceType:
          type:
          - string
          - 'null'
          readOnly: true
        productDiscount:
          type:
          - number
          - 'null'
          format: double
        automaticPlanRenewalLength:
          type:
          - integer
          - 'null'
          format: int32
        automaticPlanRenewalPriceIncreasePercent:
          type:
          - number
          - 'null'
          format: double
        includedSessions:
          type:
          - integer
          - 'null'
          format: int32
        sessionLengthInMinutes:
          type:
          - integer
          - 'null'
          format: int32
        isAdditionalSupport:
          type: boolean
        additionalSupportPrice:
          type:
          - number
          - 'null'
          format: double
        additionalSupportPriceInterval:
          type:
          - string
          - 'null'
          readOnly: true
        displayText:
          type:
          - string
          - 'null'
        isShowInProposal:
          type: boolean
          readOnly: true
      additionalProperties: false
    DTools.Cloud.Data.QuoteItem:
      type: object
      properties:
        id:
          type: integer
          format: int32
        catalogId:
          type: string
          format: uuid
        type:
          type:
          - string
          - 'null'
          readOnly: true
        allowanceType:
          type:
          - string
          - 'null'
          readOnly: true
        packageType:
          type:
          - string
          - 'null'
          readOnly: true
        laborTypeId:
          type:
          - integer
          - 'null'
          format: int32
        name:
          type:
          - string
          - 'null'
        brand:
          type:
          - string
          - 'null'
        model:
          type:
          - string
          - 'null'
        partNumber:
          type:
          - string
          - 'null'
        shortDescription:
          type:
          - string
          - 'null'
        description:
          type:
          - string
          - 'null'
        category:
          type:
          - string
          - 'null'
        imageUrl:
          type:
          - string
          - 'null'
        quantity:
          type: integer
          format: int32
        isLengthBased:
          type: boolean
        lengthId:
          type:
          - integer
          - 'null'
          format: int32
        length:
          type:
          - integer
          - 'null'
          format: int32
        isIgnorePackageItemLaborItems:
          type: boolean
        msrp:
          type:
          - number
          - 'null'
          format: double
        unitCost:
          type:
          - number
          - 'null'
          format: double
        unitPrice:
          type:
          - number
          - 'null'
          format: double
        margin:
          type:
          - number
          - 'null'
          format: double
        markup:
          type:
          - number
          - 'null'
          format: double
        costPerLength:
          type:
          - number
          - 'null'
          format: double
        pricePerLength:
          type:
          - number
          - 'null'
          format: double
        discountId:
          type:
          - integer
          - 'null'
          format: int32
        discount:
          type:
          - number
          - 'null'
          format: double
        unitLaborTime:
          type:
          - integer
          - 'null'
          format: int32
        unitLaborPrice:
          type:
          - number
          - 'null'
          format: double
        isBillable:
          type: boolean
        isTaxable:
          type: boolean
        taxId:
          type:
          - integer
          - 'null'
          format: int32
        supplier:
          type:
          - string
          - 'null'
        locationId:
          type:
          - integer
          - 'null'
          format: int32
        systemId:
          type:
          - integer
          - 'null'
          format: int32
        phaseId:
          type:
          - integer
          - 'null'
          format: int32
        upcBarcode:
          type:
          - string
          - 'null'
        eanBarcode:
          type:
          - string
          - 'null'
        itfBarcode:
          type:
          - string
          - 'null'
        alternateSetItemLabel:
          type:
          - string
          - 'null'
        alternateSetItemDescription:
          type:
          - string
          - 'null'
        optionalItemDescription:
          type:
          - string
          - 'null'
        isClientSupplied:
          type: boolean
        isRecommended:
          type: boolean
          readOnly: true
        isOptional:
          type: boolean
        isOptionalRecommended:
          type: boolean
        parentId:
          type:
          - integer
          - 'null'
          format: int32
        packageId:
          type:
          - integer
          - 'null'
          format: int32
        alternateSetId:
          type:
          - integer
          - 'null'
          format: int32
        laborItems:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DTools.Cloud.Data.QuoteItemLaborItem'
      additionalProperties: false
    DTools.Cloud.Data.QuoteServicePlanBillingFrequency:
      type: object
      properties:
        billingFrequency:
          type:
          - string
          - 'null'
          readOnly: true
        discount:
          type:
          - number
          - 'null'
          format: double
        isSuggested:
          type: boolean
      additionalProperties: false
    DTools.Cloud.Data.QuoteDiscount:
      type: object
      properties:
        id:
          type: integer
          format: int32
        name:
          type:
          - string
          - 'null'
        isRange:
          type: boolean
        isPercent:
          type: boolean
        percent:
          type:
          - number
          - 'null'
          format: double
        maximumPercent:
          type:
          - number
          - 'null'
          format: double
        amount:
          type:
          - number
          - 'null'
          format: double
        maximumAmount:
          type:
          - number
          - 'null'
          format: double
      additionalProperties: false
    DTools.Cloud.Data.QuoteSystem:
      type: object
      properties:
        id:
          type: integer
          format: int32
        name:
          type:
          - string
          - 'null'
        description:
          type:
          - string
          - 'null'
        isOptional:
          type: boolean
        isOptionalRecommended:
          type: boolean
      additionalProperties: false
    DTools.Cloud.Data.FileInfo:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type:
          - string
          - 'null'
        url:
          type:
          - string
          - 'null'
      additionalProperties: false
    DTools.Cloud.Data.QuoteItemLaborItem:
      type: object
      properties:
        laborTypeId:
          type: integer
          format: int32
        time:
          type: integer
          format: int32
        price:
          type: number
          format: double
        timePerLength:
          type:
          - integer
          - 'null'
          format: int32
        pricePerLength:
          type:
          - number
          - 'null'
          format: double
        phaseId:
          type:
          - integer
          - 'null'
          format: int32
        isBillable:
          type: boolean
      additionalProperties: false
    DTools.Cloud.Data.QuoteLaborType:
      type: object
      properties:
        id:
          type: integer
          format: int32
        catalogId:
          type: string
          format: uuid
        name:
          type:
          - string
          - 'null'
        shortDescription:
          type:
          - string
          - 'null'
        description:
          type:
          - string
          - 'null'
        hourlyCost:
          type:
          - number
          - 'null'
          format: double
        hourlyPrice:
          type:
          - number
          - 'null'
          format: double
        margin:
          type:
          - number
          - 'null'
          format: double
        markup:
          type:
          - number
          - 'null'
          format: double
        difficultyFactor:
          type: number
          format: double
        totalTimeInSeconds:
          type: integer
          format: int64
        isTaxable:
          type: boolean
        taxId:
          type:
          - integer
          - 'null'
          format: int32
      additionalProperties: false
    DTools.Cloud.Data.QuotePaymentTerm:
      type: object
      properties:
        paymentTermId:
          type: string
          format: uuid
        paymentTerm:
          type:
          - string
          - 'null'
        isPercent:
          type: boolean
        percent:
          type:
          - number
          - 'null'
          format: double
        billingDate:
          type:
          - string
          - 'null'
          format: date-time
        dueDate:
          type:
          - string
          - 'null'
          format: date-time
        amount:
          type: number
          format: double
      additionalProperties: false
    DTools.Cloud.Data.QuoteTax:
      type: object
      properties:
        id:
          type: integer
          format: int32
        name:
          type:
          - string
          - 'null'
        isGroup:
          type: boolean
        childIds:
          type:
          - array
          - 'null'
          items:
            type: integer
            format: int32
        rate:
          type: number
          format: double
        applyOn:
          type:
          - string
          - 'null'
          readOnly: true
        isPayByClient:
          type: boolean
      additionalProperties: false
    DTools.Cloud.Data.QuotePhase:
      type: object
      properties:
        id:
          type: integer
          format: int32
        name:
          type:
          - string
          - 'null'
      additionalProperties: false
    DTools.Cloud.Data.QuoteAlternateSet:
      type: object
      properties:
        id:
          type: integer
          format: int32
        name:
          type:
          - string
          - 'null'
        description:
          type:
          - string
          - 'null'
        hasRecommendedItem:
          type: boolean
          readOnly: true
        isKeepLaborItemsOnReplace:
          type: boolean
        isKeepAccessoriesOnReplace:
          type: boolean
      additionalProperties: false
    DTools.Cloud.Data.QuoteLocation:
      type: object
      properties:
        id:
          type: integer
          format: int32
        name:
          type:
          - string
          - 'null'
        number:
          type:
          - string
          - 'null'
        description:
          type:
          - string
          - 'null'
        fullName:
          type:
          - string
          - 'null'
        parentId:
          type:
          - integer
          - 'null'
          format: int32
        isOptional:
          type: boolean
        isOptionalRecommended:
          type: boolean
      additionalProperties: false
    DTools.Cloud.Data.QuoteTaxSettings:
      type: object
      properties:
        isItemLevelTax:
          type: boolean
        taxId:
          type:
          - integer
          - 'null'
          format: int32
        laborTaxId:
          type:
          - integer
          - 'null'
          format: int32
      additionalProperties: false
    DTools.Cloud.Data.QuoteLite:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type:
          - string
          - 'null'
        number:
          type:
          - string
          - 'null'
        version:
          type: number
          format: double
        systemState:
          type:
          - string
          - 'null'
          readOnly: true
        state:
          type:
          - string
          - 'null'
        price:
          type: number
          format: double
        servicePrice:
          type:
          - number
          - 'null'
          format: double
        isIncludedInTotal:
          type: boolean
        isServiceQuote:
          type: boolean
        validUntilDate:
          type:
          - string
          - 'null'
          format: date-time
        acceptedDate:
          type:
          - string
          - 'null'
          format: date-time
        createdDate:
          type: string
          format: date-time
        modifiedDate:
          type: string
          format: date-time
      additionalProperties: false
    Microsoft.AspNetCore.Mvc.ProblemDetails:
      type: object
      properties:
        type:
          type:
          - string
          - 'null'
        title:
          type:
          - string
          - 'null'
        status:
          type:
          - integer
          - 'null'
          format: int32
        detail:
          type:
          - string
          - 'null'
        instance:
          type:
          - string
          - 'null'
      additionalProperties: {}