Chilkat Online Tools

DataFlex / ShipEngine Walkthrough / Get a specific carrier

Back to Collection Items

Use ChilkatAx-9.5.0-win32.pkg

Procedure Test
    Handle hoHttp
    Boolean iSuccess
    Variant vSbResponseBody
    Handle hoSbResponseBody
    Handle hoJResp
    Integer iRespStatusCode
    String sService_code
    String sName
    Boolean iDomestic
    Boolean iInternational
    Boolean iIs_multi_package_supported
    String sPackage_id
    String sPackage_code
    String sDescription
    String sDefault_value
    String sCarrier_id
    String sCarrier_code
    String sAccount_number
    Boolean iRequires_funded_amount
    String sBalance
    String sNickname
    String sFriendly_name
    Boolean iPrimary
    Boolean iHas_multi_package_supporting_services
    Boolean iSupports_label_messages
    Integer i
    Integer iCount_i
    String sTemp1

    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    Get Create (RefClass(cComChilkatHttp)) To hoHttp
    If (Not(IsComObjectCreated(hoHttp))) Begin
        Send CreateComObject of hoHttp
    End

    Send ComSetRequestHeader To hoHttp "API-Key" "{{API_KEY}}"

    Get Create (RefClass(cComChilkatStringBuilder)) To hoSbResponseBody
    If (Not(IsComObjectCreated(hoSbResponseBody))) Begin
        Send CreateComObject of hoSbResponseBody
    End
    Get pvComObject of hoSbResponseBody to vSbResponseBody
    Get ComQuickGetSb Of hoHttp "https://api.shipengine.com/v1/carriers/se-963358" vSbResponseBody To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoHttp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get Create (RefClass(cComChilkatJsonObject)) To hoJResp
    If (Not(IsComObjectCreated(hoJResp))) Begin
        Send CreateComObject of hoJResp
    End
    Get pvComObject of hoSbResponseBody to vSbResponseBody
    Get ComLoadSb Of hoJResp vSbResponseBody To iSuccess
    Set ComEmitCompact Of hoJResp To False

    Showln "Response Body:"
    Get ComEmit Of hoJResp To sTemp1
    Showln sTemp1

    Get ComLastStatus Of hoHttp To iRespStatusCode
    Showln "Response Status Code = " iRespStatusCode
    If (iRespStatusCode >= 400) Begin
        Showln "Response Header:"
        Get ComLastHeader Of hoHttp To sTemp1
        Showln sTemp1
        Showln "Failed."
        Procedure_Return
    End

    // Sample JSON response:
    // (Sample code for parsing the JSON response is shown below)

    // {
    //   "carrier_id": "se-121861",
    //   "carrier_code": "stamps_com",
    //   "account_number": "test_account_121861",
    //   "requires_funded_amount": true,
    //   "balance": 8343.36,
    //   "nickname": "ShipEngine Test Account - Stamps.com",
    //   "friendly_name": "Stamps.com",
    //   "primary": false,
    //   "has_multi_package_supporting_services": false,
    //   "supports_label_messages": true,
    //   "services": [
    //     {
    //       "carrier_id": "se-121861",
    //       "carrier_code": "stamps_com",
    //       "service_code": "usps_first_class_mail",
    //       "name": "USPS First Class Mail",
    //       "domestic": true,
    //       "international": false,
    //       "is_multi_package_supported": false
    //     },
    //     {
    //       "carrier_id": "se-121861",
    //       "carrier_code": "stamps_com",
    //       "service_code": "usps_media_mail",
    //       "name": "USPS Media Mail",
    //       "domestic": true,
    //       "international": false,
    //       "is_multi_package_supported": false
    //     },
    //     {
    //       "carrier_id": "se-121861",
    //       "carrier_code": "stamps_com",
    //       "service_code": "usps_parcel_select",
    //       "name": "USPS Parcel Select Ground",
    //       "domestic": true,
    //       "international": false,
    //       "is_multi_package_supported": false
    //     },
    //     {
    //       "carrier_id": "se-121861",
    //       "carrier_code": "stamps_com",
    //       "service_code": "usps_priority_mail",
    //       "name": "USPS Priority Mail",
    //       "domestic": true,
    //       "international": false,
    //       "is_multi_package_supported": false
    //     },
    //     {
    //       "carrier_id": "se-121861",
    //       "carrier_code": "stamps_com",
    //       "service_code": "usps_priority_mail_express",
    //       "name": "USPS Priority Mail Express",
    //       "domestic": true,
    //       "international": false,
    //       "is_multi_package_supported": false
    //     },
    //     {
    //       "carrier_id": "se-121861",
    //       "carrier_code": "stamps_com",
    //       "service_code": "usps_first_class_mail_international",
    //       "name": "USPS First Class Mail Intl",
    //       "domestic": false,
    //       "international": true,
    //       "is_multi_package_supported": false
    //     },
    //     {
    //       "carrier_id": "se-121861",
    //       "carrier_code": "stamps_com",
    //       "service_code": "usps_priority_mail_international",
    //       "name": "USPS Priority Mail Intl",
    //       "domestic": false,
    //       "international": true,
    //       "is_multi_package_supported": false
    //     },
    //     {
    //       "carrier_id": "se-121861",
    //       "carrier_code": "stamps_com",
    //       "service_code": "usps_priority_mail_express_international",
    //       "name": "USPS Priority Mail Express Intl",
    //       "domestic": false,
    //       "international": true,
    //       "is_multi_package_supported": false
    //     }
    //   ],
    //   "packages": [
    //     {
    //       "package_id": null,
    //       "package_code": "cubic",
    //       "name": "Cubic",
    //       "description": "Cubic"
    //     },
    //     {
    //       "package_id": null,
    //       "package_code": "flat_rate_envelope",
    //       "name": "Flat Rate Envelope",
    //       "description": "USPS flat rate envelope. A special cardboard envelope provided by the USPS that clearly indicates \"Flat Rate\"."
    //     },
    //     {
    //       "package_id": null,
    //       "package_code": "flat_rate_legal_envelope",
    //       "name": "Flat Rate Legal Envelope",
    //       "description": "Flat Rate Legal Envelope"
    //     },
    //     {
    //       "package_id": null,
    //       "package_code": "flat_rate_padded_envelope",
    //       "name": "Flat Rate Padded Envelope",
    //       "description": "Flat Rate Padded Envelope"
    //     },
    //     {
    //       "package_id": null,
    //       "package_code": "large_envelope_or_flat",
    //       "name": "Large Envelope or Flat",
    //       "description": "Large envelope or flat. Has one dimension that is between 11 1/2\" and 15\" long, 6 1/18\" and 12\" high, or 1/4\" and 3/4\" thick."
    //     },
    //     {
    //       "package_id": null,
    //       "package_code": "large_flat_rate_box",
    //       "name": "Large Flat Rate Box",
    //       "description": "Large Flat Rate Box"
    //     },
    //     {
    //       "package_id": null,
    //       "package_code": "large_package",
    //       "name": "Large Package (any side > 12\")",
    //       "description": "Large package. Longest side plus the distance around the thickest part is over 84\" and less than or equal to 108\"."
    //     },
    //     {
    //       "package_id": null,
    //       "package_code": "letter",
    //       "name": "Letter",
    //       "description": "Letter"
    //     },
    //     {
    //       "package_id": null,
    //       "package_code": "medium_flat_rate_box",
    //       "name": "Medium Flat Rate Box",
    //       "description": "USPS flat rate box. A special 11\" x 8 1/2\" x 5 1/2\" or 14\" x 3.5\" x 12\" USPS box that clearly indicates \"Flat Rate Box\""
    //     },
    //     {
    //       "package_id": null,
    //       "package_code": "package",
    //       "name": "Package",
    //       "description": "Package. Longest side plus the distance around the thickest part is less than or equal to 84\""
    //     },
    //     {
    //       "package_id": null,
    //       "package_code": "regional_rate_box_a",
    //       "name": "Regional Rate Box A",
    //       "description": "Regional Rate Box A"
    //     },
    //     {
    //       "package_id": null,
    //       "package_code": "regional_rate_box_b",
    //       "name": "Regional Rate Box B",
    //       "description": "Regional Rate Box B"
    //     },
    //     {
    //       "package_id": null,
    //       "package_code": "small_flat_rate_box",
    //       "name": "Small Flat Rate Box",
    //       "description": "Small Flat Rate Box"
    //     },
    //     {
    //       "package_id": null,
    //       "package_code": "thick_envelope",
    //       "name": "Thick Envelope",
    //       "description": "Thick envelope. Envelopes or flats greater than 3/4\" at the thickest point."
    //     }
    //   ],
    //   "options": [
    //     {
    //       "name": "non_machinable",
    //       "default_value": "false",
    //       "description": ""
    //     }
    //   ]
    // }

    // Sample code for parsing the JSON response...
    // Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code

    Get ComStringOf Of hoJResp "carrier_id" To sCarrier_id
    Get ComStringOf Of hoJResp "carrier_code" To sCarrier_code
    Get ComStringOf Of hoJResp "account_number" To sAccount_number
    Get ComBoolOf Of hoJResp "requires_funded_amount" To iRequires_funded_amount
    Get ComStringOf Of hoJResp "balance" To sBalance
    Get ComStringOf Of hoJResp "nickname" To sNickname
    Get ComStringOf Of hoJResp "friendly_name" To sFriendly_name
    Get ComBoolOf Of hoJResp "primary" To iPrimary
    Get ComBoolOf Of hoJResp "has_multi_package_supporting_services" To iHas_multi_package_supporting_services
    Get ComBoolOf Of hoJResp "supports_label_messages" To iSupports_label_messages
    Move 0 To i
    Get ComSizeOfArray Of hoJResp "services" To iCount_i
    While (i < iCount_i)
        Set ComI Of hoJResp To i
        Get ComStringOf Of hoJResp "services[i].carrier_id" To sCarrier_id
        Get ComStringOf Of hoJResp "services[i].carrier_code" To sCarrier_code
        Get ComStringOf Of hoJResp "services[i].service_code" To sService_code
        Get ComStringOf Of hoJResp "services[i].name" To sName
        Get ComBoolOf Of hoJResp "services[i].domestic" To iDomestic
        Get ComBoolOf Of hoJResp "services[i].international" To iInternational
        Get ComBoolOf Of hoJResp "services[i].is_multi_package_supported" To iIs_multi_package_supported
        Move (i + 1) To i
    Loop

    Move 0 To i
    Get ComSizeOfArray Of hoJResp "packages" To iCount_i
    While (i < iCount_i)
        Set ComI Of hoJResp To i
        Get ComStringOf Of hoJResp "packages[i].package_id" To sPackage_id
        Get ComStringOf Of hoJResp "packages[i].package_code" To sPackage_code
        Get ComStringOf Of hoJResp "packages[i].name" To sName
        Get ComStringOf Of hoJResp "packages[i].description" To sDescription
        Move (i + 1) To i
    Loop

    Move 0 To i
    Get ComSizeOfArray Of hoJResp "options" To iCount_i
    While (i < iCount_i)
        Set ComI Of hoJResp To i
        Get ComStringOf Of hoJResp "options[i].name" To sName
        Get ComStringOf Of hoJResp "options[i].default_value" To sDefault_value
        Get ComStringOf Of hoJResp "options[i].description" To sDescription
        Move (i + 1) To i
    Loop



End_Procedure

Curl Command

curl -X GET
	-H "API-Key: {{API_KEY}}"
https://api.shipengine.com/v1/carriers/se-963358

Postman Collection Item JSON

{
  "name": "Get a specific carrier",
  "event": [
    {
      "listen": "test",
      "script": {
        "exec": [
          "let response = pm.response.json();",
          "",
          "if (response) {",
          "    const template = `",
          "        <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css\">",
          "        <link rel=\"stylesheet\" href=\"https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css\">",
          "        ",
          "        <img alt=\"{{nickname}}\" class=\"w-25 ml-5 mb-5 float-right\"",
          "        src=\"https://www.shipengine.com/docs/img/logos/carriers/{{carrier_code}}.svg\">",
          "",
          "        <h1>{{nickname}}</h1>",
          "        <table class=\"table w-50 mt-2\">",
          "            <tr>",
          "                <th>Carrier ID:</th>",
          "                <td>{{carrier_id}}</td>",
          "            </tr>",
          "            <tr>",
          "                <th>Carrier Code:</th>",
          "                <td>",
          "                    <samp>{{carrier_code}}</samp>",
          "                </td>",
          "            </tr>",
          "            <tr>",
          "                <th>Account Number</th>",
          "                <td>{{account_number}}</td>",
          "            </tr>",
          "        </table>",
          "        ",
          "        <div class=\"container-fluid\">",
          "            <div class=\"row\">",
          "                <div class=\"col-lg-4 mt-4\">",
          "                    <h2>Services Offered</h2>",
          "                    <ul style=\"list-style: circle inside\">",
          "                        {{#each services}}",
          "                            <li>{{name}}</li>",
          "                        {{/each}}",
          "                    </ul>",
          "                </div>",
          "                <div class=\"col-lg-4 mt-4\">",
          "                    <h2>Package Types</h2>",
          "                    <ul style=\"list-style: circle inside\">",
          "                        {{#each packages}}",
          "                            <li>{{name}}</li>",
          "                        {{/each}}",
          "                    </ul>",
          "                </div>",
          "                <div class=\"col-lg-4 mt-4\">",
          "                    <h2>Options</h2>",
          "                    <ul style=\"list-style: circle inside\">",
          "                        {{#each options}}",
          "                            <li>{{name}}</li>",
          "                        {{/each}}",
          "                    </ul>",
          "                </div>",
          "            </div>",
          "        </div>",
          "    `;",
          "    ",
          "    pm.visualizer.set(template, response);",
          "}"
        ],
        "type": "text/javascript"
      }
    }
  ],
  "request": {
    "method": "GET",
    "header": [
    ],
    "url": {
      "raw": "https://api.shipengine.com/v1/carriers/{{stamps_com}}",
      "protocol": "https",
      "host": [
        "api",
        "shipengine",
        "com"
      ],
      "path": [
        "v1",
        "carriers",
        "{{stamps_com}}"
      ]
    },
    "description": "You can get all the information about a specific carrier if you already know its `carrier_id`."
  },
  "response": [
    {
      "name": "Get a specific carrier",
      "originalRequest": {
        "method": "GET",
        "header": [
        ],
        "url": {
          "raw": "https://api.shipengine.com/v1/carriers/{{stamps_com}}",
          "protocol": "https",
          "host": [
            "api",
            "shipengine",
            "com"
          ],
          "path": [
            "v1",
            "carriers",
            "{{stamps_com}}"
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Date",
          "value": "Mon, 16 Sep 2019 20:58:56 GMT"
        },
        {
          "key": "Content-Type",
          "value": "application/json; charset=utf-8"
        },
        {
          "key": "Content-Length",
          "value": "5628"
        },
        {
          "key": "Connection",
          "value": "keep-alive"
        },
        {
          "key": "Access-Control-Allow-Origin",
          "value": "https://www.shipengine.com"
        },
        {
          "key": "Vary",
          "value": "Origin"
        },
        {
          "key": "x-shipengine-requestid",
          "value": "123c7951-2ec5-40b9-8004-f5b23f4c2c5f"
        }
      ],
      "cookie": [
      ],
      "body": "{\n    \"carrier_id\": \"se-121861\",\n    \"carrier_code\": \"stamps_com\",\n    \"account_number\": \"test_account_121861\",\n    \"requires_funded_amount\": true,\n    \"balance\": 8343.36,\n    \"nickname\": \"ShipEngine Test Account - Stamps.com\",\n    \"friendly_name\": \"Stamps.com\",\n    \"primary\": false,\n    \"has_multi_package_supporting_services\": false,\n    \"supports_label_messages\": true,\n    \"services\": [\n        {\n            \"carrier_id\": \"se-121861\",\n            \"carrier_code\": \"stamps_com\",\n            \"service_code\": \"usps_first_class_mail\",\n            \"name\": \"USPS First Class Mail\",\n            \"domestic\": true,\n            \"international\": false,\n            \"is_multi_package_supported\": false\n        },\n        {\n            \"carrier_id\": \"se-121861\",\n            \"carrier_code\": \"stamps_com\",\n            \"service_code\": \"usps_media_mail\",\n            \"name\": \"USPS Media Mail\",\n            \"domestic\": true,\n            \"international\": false,\n            \"is_multi_package_supported\": false\n        },\n        {\n            \"carrier_id\": \"se-121861\",\n            \"carrier_code\": \"stamps_com\",\n            \"service_code\": \"usps_parcel_select\",\n            \"name\": \"USPS Parcel Select Ground\",\n            \"domestic\": true,\n            \"international\": false,\n            \"is_multi_package_supported\": false\n        },\n        {\n            \"carrier_id\": \"se-121861\",\n            \"carrier_code\": \"stamps_com\",\n            \"service_code\": \"usps_priority_mail\",\n            \"name\": \"USPS Priority Mail\",\n            \"domestic\": true,\n            \"international\": false,\n            \"is_multi_package_supported\": false\n        },\n        {\n            \"carrier_id\": \"se-121861\",\n            \"carrier_code\": \"stamps_com\",\n            \"service_code\": \"usps_priority_mail_express\",\n            \"name\": \"USPS Priority Mail Express\",\n            \"domestic\": true,\n            \"international\": false,\n            \"is_multi_package_supported\": false\n        },\n        {\n            \"carrier_id\": \"se-121861\",\n            \"carrier_code\": \"stamps_com\",\n            \"service_code\": \"usps_first_class_mail_international\",\n            \"name\": \"USPS First Class Mail Intl\",\n            \"domestic\": false,\n            \"international\": true,\n            \"is_multi_package_supported\": false\n        },\n        {\n            \"carrier_id\": \"se-121861\",\n            \"carrier_code\": \"stamps_com\",\n            \"service_code\": \"usps_priority_mail_international\",\n            \"name\": \"USPS Priority Mail Intl\",\n            \"domestic\": false,\n            \"international\": true,\n            \"is_multi_package_supported\": false\n        },\n        {\n            \"carrier_id\": \"se-121861\",\n            \"carrier_code\": \"stamps_com\",\n            \"service_code\": \"usps_priority_mail_express_international\",\n            \"name\": \"USPS Priority Mail Express Intl\",\n            \"domestic\": false,\n            \"international\": true,\n            \"is_multi_package_supported\": false\n        }\n    ],\n    \"packages\": [\n        {\n            \"package_id\": null,\n            \"package_code\": \"cubic\",\n            \"name\": \"Cubic\",\n            \"description\": \"Cubic\"\n        },\n        {\n            \"package_id\": null,\n            \"package_code\": \"flat_rate_envelope\",\n            \"name\": \"Flat Rate Envelope\",\n            \"description\": \"USPS flat rate envelope. A special cardboard envelope provided by the USPS that clearly indicates \\\"Flat Rate\\\".\"\n        },\n        {\n            \"package_id\": null,\n            \"package_code\": \"flat_rate_legal_envelope\",\n            \"name\": \"Flat Rate Legal Envelope\",\n            \"description\": \"Flat Rate Legal Envelope\"\n        },\n        {\n            \"package_id\": null,\n            \"package_code\": \"flat_rate_padded_envelope\",\n            \"name\": \"Flat Rate Padded Envelope\",\n            \"description\": \"Flat Rate Padded Envelope\"\n        },\n        {\n            \"package_id\": null,\n            \"package_code\": \"large_envelope_or_flat\",\n            \"name\": \"Large Envelope or Flat\",\n            \"description\": \"Large envelope or flat. Has one dimension that is between 11 1/2\\\" and 15\\\" long, 6 1/18\\\" and 12\\\" high, or 1/4\\\" and 3/4\\\" thick.\"\n        },\n        {\n            \"package_id\": null,\n            \"package_code\": \"large_flat_rate_box\",\n            \"name\": \"Large Flat Rate Box\",\n            \"description\": \"Large Flat Rate Box\"\n        },\n        {\n            \"package_id\": null,\n            \"package_code\": \"large_package\",\n            \"name\": \"Large Package (any side > 12\\\")\",\n            \"description\": \"Large package. Longest side plus the distance around the thickest part is over 84\\\" and less than or equal to 108\\\".\"\n        },\n        {\n            \"package_id\": null,\n            \"package_code\": \"letter\",\n            \"name\": \"Letter\",\n            \"description\": \"Letter\"\n        },\n        {\n            \"package_id\": null,\n            \"package_code\": \"medium_flat_rate_box\",\n            \"name\": \"Medium Flat Rate Box\",\n            \"description\": \"USPS flat rate box. A special 11\\\" x 8 1/2\\\" x 5 1/2\\\" or 14\\\" x 3.5\\\" x 12\\\" USPS box that clearly indicates \\\"Flat Rate Box\\\"\"\n        },\n        {\n            \"package_id\": null,\n            \"package_code\": \"package\",\n            \"name\": \"Package\",\n            \"description\": \"Package. Longest side plus the distance around the thickest part is less than or equal to 84\\\"\"\n        },\n        {\n            \"package_id\": null,\n            \"package_code\": \"regional_rate_box_a\",\n            \"name\": \"Regional Rate Box A\",\n            \"description\": \"Regional Rate Box A\"\n        },\n        {\n            \"package_id\": null,\n            \"package_code\": \"regional_rate_box_b\",\n            \"name\": \"Regional Rate Box B\",\n            \"description\": \"Regional Rate Box B\"\n        },\n        {\n            \"package_id\": null,\n            \"package_code\": \"small_flat_rate_box\",\n            \"name\": \"Small Flat Rate Box\",\n            \"description\": \"Small Flat Rate Box\"\n        },\n        {\n            \"package_id\": null,\n            \"package_code\": \"thick_envelope\",\n            \"name\": \"Thick Envelope\",\n            \"description\": \"Thick envelope. Envelopes or flats greater than 3/4\\\" at the thickest point.\"\n        }\n    ],\n    \"options\": [\n        {\n            \"name\": \"non_machinable\",\n            \"default_value\": \"false\",\n            \"description\": \"\"\n        }\n    ]\n}"
    }
  ]
}