---
title: Calculate Shipping Costs
slug: api-documentation/calculate-shipping-costs
docTags: 
createdAt: 2026-08-27T16:55:41.659Z
---

{
  "id": "tpmr34ZWravvFzJnxi5oA",
  "type": "api-oas-v2",
  "data": {
    "method": "POST",
    "url": "https://api.upstartcommerce.com/v1/dmcshippingcalc/calculate",
    "servers": [
      {
        "url": "https://api.upstartcommerce.com/v1/dmcshippingcalc/calculate"
      }
    ],
    "name": "Calculate Shipping Costs",
    "description": "<p>This endpoint is used for calculation of shipping costs for DMC delivery shipping method from single location.</p>\n<p>Authorized permissions:</p>\n<ul>\n<li><code>dmc-shipping-calc.read</code></li>\n</ul>\n<p>Authorized roles:</p>\n<ul>\n<li>customer.default</li>\n<li>customer.anonymous</li>\n</ul>",
    "contentType": "application/json",
    "request": {
      "pathParameters": [],
      "headerParameters": [
        {
          "name": "accept",
          "type": "string",
          "kind": "optional",
          "description": "Generated from available response content types",
          "enum": [
            "application/json"
          ],
          "default": "application/json"
        },
        {
          "kind": "required",
          "name": "x-upstart-tenant",
          "type": "string",
          "description": "Tenant identifier associated with the site this call is for."
        }
      ],
      "queryParameters": [],
      "bodyDataParameters": [
        {
          "kind": "required",
          "name": "body",
          "type": "object",
          "description": "",
          "customType": "CalculatePriceRequest",
          "schema": [
            {
              "name": "distance",
              "kind": "required",
              "type": "number<double>",
              "description": "",
              "format": "double"
            },
            {
              "name": "deliveryPostalCode",
              "kind": "required",
              "type": "string",
              "description": "",
              "minLength": 1
            },
            {
              "name": "stateCode",
              "kind": "optional",
              "type": "string",
              "description": ""
            },
            {
              "name": "storeId",
              "kind": "required",
              "type": "string",
              "description": "",
              "minLength": 1
            },
            {
              "name": "weight",
              "kind": "required",
              "type": "number<float>",
              "description": "",
              "format": "float"
            },
            {
              "name": "itemsSubtotal",
              "kind": "optional",
              "type": "number<bigdecimal>",
              "description": "",
              "format": "bigdecimal"
            }
          ],
          "modelRef": "#/components/schemas/CalculatePriceRequest",
          "isExpanded": true
        }
      ],
      "formDataParameters": [],
      "oAuthParameters": [
        {
          "id": "NoChannelPortalAccess",
          "name": "NoChannelPortalAccess",
          "kind": "optional",
          "type": "http",
          "description": "<p>This authentication is required for clients to interact with any of the management APIs. Similar to 'LoggedIn', it indicates that the user has actually logged into the system, but in this case with a management role.</p>",
          "scheme": "bearer"
        },
        {
          "id": "LoggedIn",
          "name": "LoggedIn",
          "kind": "optional",
          "type": "http",
          "description": "The presence of this token indicates that the user is a known consumer that has previously logged into the platform.",
          "scheme": "bearer"
        },
        {
          "id": "AnonymousAuth",
          "name": "AnonymousAuth",
          "kind": "optional",
          "type": "http",
          "description": "This is the most basic authentication. The minimum requirement for access is a token representing the user as an anonymous client.",
          "scheme": "bearer"
        }
      ],
      "cookieParameters": []
    },
    "responses": [
      {
        "statusCode": "200",
        "description": "OK",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "Price",
            "schema": [
              {
                "name": "basicAmount",
                "kind": "optional",
                "type": "number<float>",
                "description": "",
                "format": "float"
              },
              {
                "name": "premiumAmount",
                "kind": "required",
                "type": "number<float>",
                "description": "",
                "format": "float"
              },
              {
                "name": "isFreight",
                "kind": "required",
                "type": "boolean",
                "description": ""
              }
            ],
            "modelRef": "#/components/schemas/Price",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "400",
        "description": "The request contained information that the server was unable to process. Appropriate errors are provided in the response body.",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "ValidationErrorResponse",
            "schema": [
              {
                "name": "name",
                "kind": "required",
                "type": "string",
                "description": ""
              },
              {
                "name": "code",
                "kind": "required",
                "type": "string",
                "description": ""
              },
              {
                "name": "detail",
                "kind": "optional",
                "type": "string",
                "description": ""
              }
            ],
            "modelRef": "#/components/schemas/ValidationErrorResponse",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "401",
        "description": "The provided credentials were not valid for this endpoint. It may be that they are expired or that the user's roles are insufficient.",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "ErrorResponse",
            "schema": [
              {
                "name": "name",
                "kind": "required",
                "type": "string",
                "description": ""
              },
              {
                "name": "code",
                "kind": "required",
                "type": "string",
                "description": ""
              },
              {
                "name": "detail",
                "kind": "required",
                "type": "string",
                "description": ""
              },
              {
                "name": "reason",
                "kind": "optional",
                "type": "string",
                "description": ""
              }
            ],
            "modelRef": "#/components/schemas/ErrorResponse",
            "isExpanded": true
          }
        ]
      }
    ],
    "hasXCodeSamples": false,
    "examples": {
      "languages": [
        {
          "id": "zujCansPMFY6SIYJpI21s",
          "language": "curl",
          "label": "cURL",
          "code": "curl --request POST \\\n     --url https://api.upstartcommerce.com/v1/dmcshippingcalc/calculate \\\n     --header 'accept: application/json' \\\n     --header 'content-type: application/json' \\\n     --header 'x-upstart-tenant: string' \\\n     --data '{\n     \"distance\": \"\",\n     \"deliveryPostalCode\": \"\",\n     \"storeId\": \"\",\n     \"weight\": \"\"\n     }'"
        },
        {
          "id": "zRhwFv5J-VBmMJTfMozVw",
          "language": "javascript",
          "label": "javascript",
          "code": "var myHeaders = new Headers();\nmyHeaders.append(\"accept\", \"application/json\");\nmyHeaders.append(\"content-type\", \"application/json\");\nmyHeaders.append(\"x-upstart-tenant\", \"string\");\n\nvar raw = JSON.stringify({\n   \"distance\": \"\",\n   \"deliveryPostalCode\": \"\",\n   \"storeId\": \"\",\n   \"weight\": \"\"\n});\n\nvar requestOptions = {\n   method: 'POST',\n   headers: myHeaders,\n   body: raw,\n   redirect: 'follow'\n};\n\nfetch(\"https://api.upstartcommerce.com/v1/dmcshippingcalc/calculate\", requestOptions)\n   .then(response => response.text())\n   .then(result => console.log(result))\n   .catch(error => console.log('error', error));"
        },
        {
          "id": "7VQpj8M9ftrXYdVTXvFgT",
          "language": "ruby",
          "label": "Ruby",
          "code": "require \"uri\"\nrequire \"json\"\nrequire \"net/http\"\n\nurl = URI(\"https://api.upstartcommerce.com/v1/dmcshippingcalc/calculate\")\n\nhttps = Net::HTTP.new(url.host, url.port)\nhttps.use_ssl = true\n\nrequest = Net::HTTP::Post.new(url)\nrequest[\"accept\"] = \"application/json\"\nrequest[\"content-type\"] = \"application/json\"\nrequest[\"x-upstart-tenant\"] = \"string\"\nrequest.body = JSON.dump({\n   \"distance\": \"\",\n   \"deliveryPostalCode\": \"\",\n   \"storeId\": \"\",\n   \"weight\": \"\"\n})\n\nresponse = https.request(request)\nputs response.read_body\n"
        },
        {
          "id": "EWrUbnuzdyasnu0Gcz4Jw",
          "language": "python",
          "label": "Python",
          "code": "import requests\nimport json\n\nurl = \"https://api.upstartcommerce.com/v1/dmcshippingcalc/calculate\"\n\npayload = json.dumps({\n   \"distance\": \"\",\n   \"deliveryPostalCode\": \"\",\n   \"storeId\": \"\",\n   \"weight\": \"\"\n})\nheaders = {\n   'accept': 'application/json',\n   'content-type': 'application/json',\n   'x-upstart-tenant': 'string'\n}\n\nresponse = requests.request(\"POST\", url, headers=headers, data=payload)\n\nprint(response.text)\n"
        }
      ],
      "selectedLanguageId": "zujCansPMFY6SIYJpI21s"
    },
    "results": {
      "languages": [
        {
          "id": "NnWPqPUVQ3fOqP2ZX2ziT",
          "language": "200",
          "code": "// OK\n{\n  \"basicAmount\": \"\",\n  \"premiumAmount\": \"\",\n  \"isFreight\": false\n}"
        },
        {
          "id": "HHXGquNVfGeLaSDv2FI-R",
          "language": "400",
          "code": "// The request contained information that the server was unable to process. Appropriate errors are provided in the response body.\n{\n  \"name\": \"\",\n  \"code\": \"\",\n  \"detail\": \"\"\n}"
        },
        {
          "id": "zogcBmsQFRDfYPbRR9kk1",
          "language": "401",
          "code": "// The provided credentials were not valid for this endpoint. It may be that they are expired or that the user's roles are insufficient.\n{\n  \"name\": \"\",\n  \"code\": \"\",\n  \"detail\": \"\",\n  \"reason\": \"\"\n}"
        }
      ],
      "selectedLanguageId": "NnWPqPUVQ3fOqP2ZX2ziT"
    }
  },
  "children": [
    {
      "text": ""
    }
  ]
}