Chilkat Online Tools

PureBasic / Salesforce Platform APIs / Limits

Back to Collection Items

IncludeFile "CkJsonObject.pb"
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkHttp.pb"

Procedure ChilkatExample()

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

    http.i = CkHttp::ckCreate()
    If http.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success.i

    ; Adds the "Authorization: Bearer <access_token>" header.
    CkHttp::setCkAuthToken(http, "<access_token>")

    sbResponseBody.i = CkStringBuilder::ckCreate()
    If sbResponseBody.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkHttp::ckQuickGetSb(http,"https://domain.com/services/data/v{{version}}/limits",sbResponseBody)
    If success = 0
        Debug CkHttp::ckLastErrorText(http)
        CkHttp::ckDispose(http)
        CkStringBuilder::ckDispose(sbResponseBody)
        ProcedureReturn
    EndIf

    jResp.i = CkJsonObject::ckCreate()
    If jResp.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkJsonObject::ckLoadSb(jResp,sbResponseBody)
    CkJsonObject::setCkEmitCompact(jResp, 0)

    Debug "Response Body:"
    Debug CkJsonObject::ckEmit(jResp)

    respStatusCode.i = CkHttp::ckLastStatus(http)
    Debug "Response Status Code = " + Str(respStatusCode)
    If respStatusCode >= 400
        Debug "Response Header:"
        Debug CkHttp::ckLastHeader(http)
        Debug "Failed."
        CkHttp::ckDispose(http)
        CkStringBuilder::ckDispose(sbResponseBody)
        CkJsonObject::ckDispose(jResp)
        ProcedureReturn
    EndIf

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

    ; {
    ;   "ActiveScratchOrgs": {
    ;     "Max": 3,
    ;     "Remaining": 3
    ;   },
    ;   "AnalyticsExternalDataSizeMB": {
    ;     "Max": 40960,
    ;     "Remaining": 40960
    ;   },
    ;   "ConcurrentAsyncGetReportInstances": {
    ;     "Max": 200,
    ;     "Remaining": 200
    ;   },
    ;   "ConcurrentEinsteinDataInsightsStoryCreation": {
    ;     "Max": 5,
    ;     "Remaining": 5
    ;   },
    ;   "ConcurrentEinsteinDiscoveryStoryCreation": {
    ;     "Max": 2,
    ;     "Remaining": 2
    ;   },
    ;   "ConcurrentSyncReportRuns": {
    ;     "Max": 20,
    ;     "Remaining": 20
    ;   },
    ;   "DailyAnalyticsDataflowJobExecutions": {
    ;     "Max": 60,
    ;     "Remaining": 60
    ;   },
    ;   "DailyAnalyticsUploadedFilesSizeMB": {
    ;     "Max": 51200,
    ;     "Remaining": 51200
    ;   },
    ;   "DailyApiRequests": {
    ;     "Max": 15000,
    ;     "Remaining": 14999
    ;   },
    ;   "DailyAsyncApexExecutions": {
    ;     "Max": 250000,
    ;     "Remaining": 250000
    ;   },
    ;   "DailyAsyncApexTests": {
    ;     "Max": 540,
    ;     "Remaining": 540
    ;   },
    ;   "DailyBulkApiBatches": {
    ;     "Max": 15000,
    ;     "Remaining": 15000
    ;   },
    ;   "DailyBulkV2QueryFileStorageMB": {
    ;     "Max": 976562,
    ;     "Remaining": 976562
    ;   },
    ;   "DailyBulkV2QueryJobs": {
    ;     "Max": 10000,
    ;     "Remaining": 10000
    ;   },
    ;   "DailyDeliveredPlatformEvents": {
    ;     "Max": 10000,
    ;     "Remaining": 10000
    ;   },
    ;   "DailyDurableGenericStreamingApiEvents": {
    ;     "Max": 10000,
    ;     "Remaining": 10000
    ;   },
    ;   "DailyDurableStreamingApiEvents": {
    ;     "Max": 10000,
    ;     "Remaining": 10000
    ;   },
    ;   "DailyEinsteinDataInsightsStoryCreation": {
    ;     "Max": 1000,
    ;     "Remaining": 1000
    ;   },
    ;   "DailyEinsteinDiscoveryOptimizationJobRuns": {
    ;     "Max": 25,
    ;     "Remaining": 25
    ;   },
    ;   "DailyEinsteinDiscoveryPredictAPICalls": {
    ;     "Max": 50000,
    ;     "Remaining": 50000
    ;   },
    ;   "DailyEinsteinDiscoveryPredictionsByCDC": {
    ;     "Max": 500000,
    ;     "Remaining": 500000
    ;   },
    ;   "DailyEinsteinDiscoveryStoryCreation": {
    ;     "Max": 100,
    ;     "Remaining": 100
    ;   },
    ;   "DailyFunctionsApiCallLimit": {
    ;     "Max": 50000,
    ;     "Remaining": 50000
    ;   },
    ;   "DailyGenericStreamingApiEvents": {
    ;     "Max": 10000,
    ;     "Remaining": 10000
    ;   },
    ;   "DailyScratchOrgs": {
    ;     "Max": 6,
    ;     "Remaining": 6
    ;   },
    ;   "DailyStandardVolumePlatformEvents": {
    ;     "Max": 10000,
    ;     "Remaining": 10000
    ;   },
    ;   "DailyStreamingApiEvents": {
    ;     "Max": 10000,
    ;     "Remaining": 10000
    ;   },
    ;   "DailyWorkflowEmails": {
    ;     "Max": 405,
    ;     "Remaining": 405
    ;   },
    ;   "DataStorageMB": {
    ;     "Max": 5,
    ;     "Remaining": 5
    ;   },
    ;   "DurableStreamingApiConcurrentClients": {
    ;     "Max": 20,
    ;     "Remaining": 20
    ;   },
    ;   "FileStorageMB": {
    ;     "Max": 20,
    ;     "Remaining": 20
    ;   },
    ;   "HourlyAsyncReportRuns": {
    ;     "Max": 1200,
    ;     "Remaining": 1200
    ;   },
    ;   "HourlyDashboardRefreshes": {
    ;     "Max": 200,
    ;     "Remaining": 200
    ;   },
    ;   "HourlyDashboardResults": {
    ;     "Max": 5000,
    ;     "Remaining": 5000
    ;   },
    ;   "HourlyDashboardStatuses": {
    ;     "Max": 999999999,
    ;     "Remaining": 999999999
    ;   },
    ;   "HourlyLongTermIdMapping": {
    ;     "Max": 100000,
    ;     "Remaining": 100000
    ;   },
    ;   "HourlyManagedContentPublicRequests": {
    ;     "Max": 50000,
    ;     "Remaining": 50000
    ;   },
    ;   "HourlyODataCallout": {
    ;     "Max": 1000,
    ;     "Remaining": 1000
    ;   },
    ;   "HourlyPublishedPlatformEvents": {
    ;     "Max": 50000,
    ;     "Remaining": 50000
    ;   },
    ;   "HourlyPublishedStandardVolumePlatformEvents": {
    ;     "Max": 1000,
    ;     "Remaining": 1000
    ;   },
    ;   "HourlyShortTermIdMapping": {
    ;     "Max": 100000,
    ;     "Remaining": 100000
    ;   },
    ;   "HourlySyncReportRuns": {
    ;     "Max": 500,
    ;     "Remaining": 500
    ;   },
    ;   "HourlyTimeBasedWorkflow": {
    ;     "Max": 50,
    ;     "Remaining": 50
    ;   },
    ;   "MassEmail": {
    ;     "Max": 10,
    ;     "Remaining": 10
    ;   },
    ;   "MonthlyEinsteinDiscoveryStoryCreation": {
    ;     "Max": 500,
    ;     "Remaining": 500
    ;   },
    ;   "Package2VersionCreates": {
    ;     "Max": 6,
    ;     "Remaining": 6
    ;   },
    ;   "Package2VersionCreatesWithoutValidation": {
    ;     "Max": 500,
    ;     "Remaining": 500
    ;   },
    ;   "PermissionSets": {
    ;     "Max": 1500,
    ;     "Remaining": 1498,
    ;     "CreateCustom": {
    ;       "Max": 1000,
    ;       "Remaining": 998
    ;     }
    ;   },
    ;   "PrivateConnectOutboundCalloutHourlyLimitMB": {
    ;     "Max": 0,
    ;     "Remaining": 0
    ;   },
    ;   "PublishCallbackUsageInApex": {
    ;     "Max": 5242880,
    ;     "Remaining": 5242880
    ;   },
    ;   "SingleEmail": {
    ;     "Max": 15,
    ;     "Remaining": 15
    ;   },
    ;   "StreamingApiConcurrentClients": {
    ;     "Max": 20,
    ;     "Remaining": 20
    ;   }
    ; }

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

    Max.i = CkJsonObject::ckIntOf(jResp,"ActiveScratchOrgs.Max")
    Remaining.i = CkJsonObject::ckIntOf(jResp,"ActiveScratchOrgs.Remaining")
    AnalyticsExternalDataSizeMBMax.i = CkJsonObject::ckIntOf(jResp,"AnalyticsExternalDataSizeMB.Max")
    AnalyticsExternalDataSizeMBRemaining.i = CkJsonObject::ckIntOf(jResp,"AnalyticsExternalDataSizeMB.Remaining")
    ConcurrentAsyncGetReportInstancesMax.i = CkJsonObject::ckIntOf(jResp,"ConcurrentAsyncGetReportInstances.Max")
    ConcurrentAsyncGetReportInstancesRemaining.i = CkJsonObject::ckIntOf(jResp,"ConcurrentAsyncGetReportInstances.Remaining")
    ConcurrentEinsteinDataInsightsStoryCreationMax.i = CkJsonObject::ckIntOf(jResp,"ConcurrentEinsteinDataInsightsStoryCreation.Max")
    ConcurrentEinsteinDataInsightsStoryCreationRemaining.i = CkJsonObject::ckIntOf(jResp,"ConcurrentEinsteinDataInsightsStoryCreation.Remaining")
    ConcurrentEinsteinDiscoveryStoryCreationMax.i = CkJsonObject::ckIntOf(jResp,"ConcurrentEinsteinDiscoveryStoryCreation.Max")
    ConcurrentEinsteinDiscoveryStoryCreationRemaining.i = CkJsonObject::ckIntOf(jResp,"ConcurrentEinsteinDiscoveryStoryCreation.Remaining")
    ConcurrentSyncReportRunsMax.i = CkJsonObject::ckIntOf(jResp,"ConcurrentSyncReportRuns.Max")
    ConcurrentSyncReportRunsRemaining.i = CkJsonObject::ckIntOf(jResp,"ConcurrentSyncReportRuns.Remaining")
    DailyAnalyticsDataflowJobExecutionsMax.i = CkJsonObject::ckIntOf(jResp,"DailyAnalyticsDataflowJobExecutions.Max")
    DailyAnalyticsDataflowJobExecutionsRemaining.i = CkJsonObject::ckIntOf(jResp,"DailyAnalyticsDataflowJobExecutions.Remaining")
    DailyAnalyticsUploadedFilesSizeMBMax.i = CkJsonObject::ckIntOf(jResp,"DailyAnalyticsUploadedFilesSizeMB.Max")
    DailyAnalyticsUploadedFilesSizeMBRemaining.i = CkJsonObject::ckIntOf(jResp,"DailyAnalyticsUploadedFilesSizeMB.Remaining")
    DailyApiRequestsMax.i = CkJsonObject::ckIntOf(jResp,"DailyApiRequests.Max")
    DailyApiRequestsRemaining.i = CkJsonObject::ckIntOf(jResp,"DailyApiRequests.Remaining")
    DailyAsyncApexExecutionsMax.i = CkJsonObject::ckIntOf(jResp,"DailyAsyncApexExecutions.Max")
    DailyAsyncApexExecutionsRemaining.i = CkJsonObject::ckIntOf(jResp,"DailyAsyncApexExecutions.Remaining")
    DailyAsyncApexTestsMax.i = CkJsonObject::ckIntOf(jResp,"DailyAsyncApexTests.Max")
    DailyAsyncApexTestsRemaining.i = CkJsonObject::ckIntOf(jResp,"DailyAsyncApexTests.Remaining")
    DailyBulkApiBatchesMax.i = CkJsonObject::ckIntOf(jResp,"DailyBulkApiBatches.Max")
    DailyBulkApiBatchesRemaining.i = CkJsonObject::ckIntOf(jResp,"DailyBulkApiBatches.Remaining")
    DailyBulkV2QueryFileStorageMBMax.i = CkJsonObject::ckIntOf(jResp,"DailyBulkV2QueryFileStorageMB.Max")
    DailyBulkV2QueryFileStorageMBRemaining.i = CkJsonObject::ckIntOf(jResp,"DailyBulkV2QueryFileStorageMB.Remaining")
    DailyBulkV2QueryJobsMax.i = CkJsonObject::ckIntOf(jResp,"DailyBulkV2QueryJobs.Max")
    DailyBulkV2QueryJobsRemaining.i = CkJsonObject::ckIntOf(jResp,"DailyBulkV2QueryJobs.Remaining")
    DailyDeliveredPlatformEventsMax.i = CkJsonObject::ckIntOf(jResp,"DailyDeliveredPlatformEvents.Max")
    DailyDeliveredPlatformEventsRemaining.i = CkJsonObject::ckIntOf(jResp,"DailyDeliveredPlatformEvents.Remaining")
    DailyDurableGenericStreamingApiEventsMax.i = CkJsonObject::ckIntOf(jResp,"DailyDurableGenericStreamingApiEvents.Max")
    DailyDurableGenericStreamingApiEventsRemaining.i = CkJsonObject::ckIntOf(jResp,"DailyDurableGenericStreamingApiEvents.Remaining")
    DailyDurableStreamingApiEventsMax.i = CkJsonObject::ckIntOf(jResp,"DailyDurableStreamingApiEvents.Max")
    DailyDurableStreamingApiEventsRemaining.i = CkJsonObject::ckIntOf(jResp,"DailyDurableStreamingApiEvents.Remaining")
    DailyEinsteinDataInsightsStoryCreationMax.i = CkJsonObject::ckIntOf(jResp,"DailyEinsteinDataInsightsStoryCreation.Max")
    DailyEinsteinDataInsightsStoryCreationRemaining.i = CkJsonObject::ckIntOf(jResp,"DailyEinsteinDataInsightsStoryCreation.Remaining")
    DailyEinsteinDiscoveryOptimizationJobRunsMax.i = CkJsonObject::ckIntOf(jResp,"DailyEinsteinDiscoveryOptimizationJobRuns.Max")
    DailyEinsteinDiscoveryOptimizationJobRunsRemaining.i = CkJsonObject::ckIntOf(jResp,"DailyEinsteinDiscoveryOptimizationJobRuns.Remaining")
    DailyEinsteinDiscoveryPredictAPICallsMax.i = CkJsonObject::ckIntOf(jResp,"DailyEinsteinDiscoveryPredictAPICalls.Max")
    DailyEinsteinDiscoveryPredictAPICallsRemaining.i = CkJsonObject::ckIntOf(jResp,"DailyEinsteinDiscoveryPredictAPICalls.Remaining")
    DailyEinsteinDiscoveryPredictionsByCDCMax.i = CkJsonObject::ckIntOf(jResp,"DailyEinsteinDiscoveryPredictionsByCDC.Max")
    DailyEinsteinDiscoveryPredictionsByCDCRemaining.i = CkJsonObject::ckIntOf(jResp,"DailyEinsteinDiscoveryPredictionsByCDC.Remaining")
    DailyEinsteinDiscoveryStoryCreationMax.i = CkJsonObject::ckIntOf(jResp,"DailyEinsteinDiscoveryStoryCreation.Max")
    DailyEinsteinDiscoveryStoryCreationRemaining.i = CkJsonObject::ckIntOf(jResp,"DailyEinsteinDiscoveryStoryCreation.Remaining")
    DailyFunctionsApiCallLimitMax.i = CkJsonObject::ckIntOf(jResp,"DailyFunctionsApiCallLimit.Max")
    DailyFunctionsApiCallLimitRemaining.i = CkJsonObject::ckIntOf(jResp,"DailyFunctionsApiCallLimit.Remaining")
    DailyGenericStreamingApiEventsMax.i = CkJsonObject::ckIntOf(jResp,"DailyGenericStreamingApiEvents.Max")
    DailyGenericStreamingApiEventsRemaining.i = CkJsonObject::ckIntOf(jResp,"DailyGenericStreamingApiEvents.Remaining")
    DailyScratchOrgsMax.i = CkJsonObject::ckIntOf(jResp,"DailyScratchOrgs.Max")
    DailyScratchOrgsRemaining.i = CkJsonObject::ckIntOf(jResp,"DailyScratchOrgs.Remaining")
    DailyStandardVolumePlatformEventsMax.i = CkJsonObject::ckIntOf(jResp,"DailyStandardVolumePlatformEvents.Max")
    DailyStandardVolumePlatformEventsRemaining.i = CkJsonObject::ckIntOf(jResp,"DailyStandardVolumePlatformEvents.Remaining")
    DailyStreamingApiEventsMax.i = CkJsonObject::ckIntOf(jResp,"DailyStreamingApiEvents.Max")
    DailyStreamingApiEventsRemaining.i = CkJsonObject::ckIntOf(jResp,"DailyStreamingApiEvents.Remaining")
    DailyWorkflowEmailsMax.i = CkJsonObject::ckIntOf(jResp,"DailyWorkflowEmails.Max")
    DailyWorkflowEmailsRemaining.i = CkJsonObject::ckIntOf(jResp,"DailyWorkflowEmails.Remaining")
    DataStorageMBMax.i = CkJsonObject::ckIntOf(jResp,"DataStorageMB.Max")
    DataStorageMBRemaining.i = CkJsonObject::ckIntOf(jResp,"DataStorageMB.Remaining")
    DurableStreamingApiConcurrentClientsMax.i = CkJsonObject::ckIntOf(jResp,"DurableStreamingApiConcurrentClients.Max")
    DurableStreamingApiConcurrentClientsRemaining.i = CkJsonObject::ckIntOf(jResp,"DurableStreamingApiConcurrentClients.Remaining")
    FileStorageMBMax.i = CkJsonObject::ckIntOf(jResp,"FileStorageMB.Max")
    FileStorageMBRemaining.i = CkJsonObject::ckIntOf(jResp,"FileStorageMB.Remaining")
    HourlyAsyncReportRunsMax.i = CkJsonObject::ckIntOf(jResp,"HourlyAsyncReportRuns.Max")
    HourlyAsyncReportRunsRemaining.i = CkJsonObject::ckIntOf(jResp,"HourlyAsyncReportRuns.Remaining")
    HourlyDashboardRefreshesMax.i = CkJsonObject::ckIntOf(jResp,"HourlyDashboardRefreshes.Max")
    HourlyDashboardRefreshesRemaining.i = CkJsonObject::ckIntOf(jResp,"HourlyDashboardRefreshes.Remaining")
    HourlyDashboardResultsMax.i = CkJsonObject::ckIntOf(jResp,"HourlyDashboardResults.Max")
    HourlyDashboardResultsRemaining.i = CkJsonObject::ckIntOf(jResp,"HourlyDashboardResults.Remaining")
    HourlyDashboardStatusesMax.i = CkJsonObject::ckIntOf(jResp,"HourlyDashboardStatuses.Max")
    HourlyDashboardStatusesRemaining.i = CkJsonObject::ckIntOf(jResp,"HourlyDashboardStatuses.Remaining")
    HourlyLongTermIdMappingMax.i = CkJsonObject::ckIntOf(jResp,"HourlyLongTermIdMapping.Max")
    HourlyLongTermIdMappingRemaining.i = CkJsonObject::ckIntOf(jResp,"HourlyLongTermIdMapping.Remaining")
    HourlyManagedContentPublicRequestsMax.i = CkJsonObject::ckIntOf(jResp,"HourlyManagedContentPublicRequests.Max")
    HourlyManagedContentPublicRequestsRemaining.i = CkJsonObject::ckIntOf(jResp,"HourlyManagedContentPublicRequests.Remaining")
    HourlyODataCalloutMax.i = CkJsonObject::ckIntOf(jResp,"HourlyODataCallout.Max")
    HourlyODataCalloutRemaining.i = CkJsonObject::ckIntOf(jResp,"HourlyODataCallout.Remaining")
    HourlyPublishedPlatformEventsMax.i = CkJsonObject::ckIntOf(jResp,"HourlyPublishedPlatformEvents.Max")
    HourlyPublishedPlatformEventsRemaining.i = CkJsonObject::ckIntOf(jResp,"HourlyPublishedPlatformEvents.Remaining")
    HourlyPublishedStandardVolumePlatformEventsMax.i = CkJsonObject::ckIntOf(jResp,"HourlyPublishedStandardVolumePlatformEvents.Max")
    HourlyPublishedStandardVolumePlatformEventsRemaining.i = CkJsonObject::ckIntOf(jResp,"HourlyPublishedStandardVolumePlatformEvents.Remaining")
    HourlyShortTermIdMappingMax.i = CkJsonObject::ckIntOf(jResp,"HourlyShortTermIdMapping.Max")
    HourlyShortTermIdMappingRemaining.i = CkJsonObject::ckIntOf(jResp,"HourlyShortTermIdMapping.Remaining")
    HourlySyncReportRunsMax.i = CkJsonObject::ckIntOf(jResp,"HourlySyncReportRuns.Max")
    HourlySyncReportRunsRemaining.i = CkJsonObject::ckIntOf(jResp,"HourlySyncReportRuns.Remaining")
    HourlyTimeBasedWorkflowMax.i = CkJsonObject::ckIntOf(jResp,"HourlyTimeBasedWorkflow.Max")
    HourlyTimeBasedWorkflowRemaining.i = CkJsonObject::ckIntOf(jResp,"HourlyTimeBasedWorkflow.Remaining")
    MassEmailMax.i = CkJsonObject::ckIntOf(jResp,"MassEmail.Max")
    MassEmailRemaining.i = CkJsonObject::ckIntOf(jResp,"MassEmail.Remaining")
    MonthlyEinsteinDiscoveryStoryCreationMax.i = CkJsonObject::ckIntOf(jResp,"MonthlyEinsteinDiscoveryStoryCreation.Max")
    MonthlyEinsteinDiscoveryStoryCreationRemaining.i = CkJsonObject::ckIntOf(jResp,"MonthlyEinsteinDiscoveryStoryCreation.Remaining")
    Package2VersionCreatesMax.i = CkJsonObject::ckIntOf(jResp,"Package2VersionCreates.Max")
    Package2VersionCreatesRemaining.i = CkJsonObject::ckIntOf(jResp,"Package2VersionCreates.Remaining")
    Package2VersionCreatesWithoutValidationMax.i = CkJsonObject::ckIntOf(jResp,"Package2VersionCreatesWithoutValidation.Max")
    Package2VersionCreatesWithoutValidationRemaining.i = CkJsonObject::ckIntOf(jResp,"Package2VersionCreatesWithoutValidation.Remaining")
    PermissionSetsMax.i = CkJsonObject::ckIntOf(jResp,"PermissionSets.Max")
    PermissionSetsRemaining.i = CkJsonObject::ckIntOf(jResp,"PermissionSets.Remaining")
    CreateCustomMax.i = CkJsonObject::ckIntOf(jResp,"PermissionSets.CreateCustom.Max")
    CreateCustomRemaining.i = CkJsonObject::ckIntOf(jResp,"PermissionSets.CreateCustom.Remaining")
    PrivateConnectOutboundCalloutHourlyLimitMBMax.i = CkJsonObject::ckIntOf(jResp,"PrivateConnectOutboundCalloutHourlyLimitMB.Max")
    PrivateConnectOutboundCalloutHourlyLimitMBRemaining.i = CkJsonObject::ckIntOf(jResp,"PrivateConnectOutboundCalloutHourlyLimitMB.Remaining")
    PublishCallbackUsageInApexMax.i = CkJsonObject::ckIntOf(jResp,"PublishCallbackUsageInApex.Max")
    PublishCallbackUsageInApexRemaining.i = CkJsonObject::ckIntOf(jResp,"PublishCallbackUsageInApex.Remaining")
    SingleEmailMax.i = CkJsonObject::ckIntOf(jResp,"SingleEmail.Max")
    SingleEmailRemaining.i = CkJsonObject::ckIntOf(jResp,"SingleEmail.Remaining")
    StreamingApiConcurrentClientsMax.i = CkJsonObject::ckIntOf(jResp,"StreamingApiConcurrentClients.Max")
    StreamingApiConcurrentClientsRemaining.i = CkJsonObject::ckIntOf(jResp,"StreamingApiConcurrentClients.Remaining")


    CkHttp::ckDispose(http)
    CkStringBuilder::ckDispose(sbResponseBody)
    CkJsonObject::ckDispose(jResp)


    ProcedureReturn
EndProcedure

Curl Command

curl -X GET
	-H "Authorization: Bearer <access_token>"
https://domain.com/services/data/v{{version}}/limits

Postman Collection Item JSON

{
  "name": "Limits",
  "event": [
    {
      "listen": "test",
      "script": {
        "exec": [
          "// Visualizer that renders a Chart.js graph with the Salesforce API limits consumption",
          "const template = `<script src=\"https://cdn.jsdelivr.net/npm/chart.js@3.5.1/dist/chart.min.js\"></script>",
          "<canvas id=\"myChart\" width=\"400\" height=\"800\"></canvas>",
          "<script>",
          "pm.getData((err, chartData) => {",
          "    const getTooltipFooter = (tooltipItems) => {",
          "        const index = tooltipItems[0].dataIndex;",
          "        return 'Consumed '+ chartData.consumed[index] +' out of '+ chartData.max[index];",
          "    };",
          "",
          "    const ctx = document.getElementById('myChart').getContext('2d');",
          "    const myChart = new Chart(ctx, {",
          "        type: 'bar',",
          "        data: {",
          "            labels: chartData.labels,",
          "            datasets: [",
          "                {",
          "                    label: '% Consumed',",
          "                    data: chartData.consumedPercent,",
          "                    backgroundColor: 'rgba(255, 99, 132, 1)',",
          "                    borderColor: 'rgba(255, 99, 132, 1)',",
          "                    borderWidth: 1",
          "                }",
          "            ]",
          "        },",
          "        options: {",
          "            indexAxis: 'y',",
          "            responsive: true,",
          "            scales: {",
          "                x: {",
          "                    beginAtZero: true,",
          "                    ticks: {",
          "                        callback: (value, index, values) => value + '%'",
          "                    },",
          "                    max: 100",
          "                }",
          "            },",
          "            interaction: {",
          "                intersect: false,",
          "                mode: 'y'",
          "            },",
          "            plugins: {",
          "                tooltip: {",
          "                    callbacks: {",
          "                        footer: getTooltipFooter,",
          "                        label: (tooltipItems) => tooltipItems.raw + '%'",
          "                    }",
          "                },",
          "                title: {",
          "                    display: true,",
          "                    text: 'API Limits Consumption'",
          "                },",
          "                legend: {",
          "                    display: false",
          "                }",
          "            }",
          "        }",
          "    });",
          "});",
          "</script>`;",
          "",
          "// Format API response into chart data",
          "const responseJson = pm.response.json();",
          "const chartData = {",
          "    labels: [],",
          "    consumed: [],",
          "    consumedPercent: [],",
          "    max: []",
          "};",
          "Object.keys(responseJson).forEach((limitName) => {",
          "    const { Max, Remaining } = responseJson[limitName];",
          "    const consumed = Max - Remaining;",
          "    let percent = 0;",
          "    if (Max !== 0) {",
          "        percent = (consumed / Max) * 100;",
          "        percent = percent",
          "            .toString()",
          "            .match(/^-?\\d+(?:\\.\\d{0,2})?/)[0];",
          "    }",
          "    chartData.labels.push(limitName);",
          "    chartData.consumed.push(consumed);",
          "    chartData.consumedPercent.push(percent);",
          "    chartData.max.push(Max);",
          "});",
          "// Render vizualizer",
          "pm.visualizer.set(template, chartData);"
        ],
        "type": "text/javascript",
        "packages": {}
      }
    }
  ],
  "request": {
    "method": "GET",
    "header": [
    ],
    "url": {
      "raw": "{{_endpoint}}/services/data/v{{version}}/limits",
      "host": [
        "{{_endpoint}}"
      ],
      "path": [
        "services",
        "data",
        "v{{version}}",
        "limits"
      ]
    },
    "description": "Lists information about limits in your org. For each limit, this resource returns the maximum allocation and the remaining allocation based on usage. This resource is available in REST API version 29.0 and later for API users with the View Setup and Configuration permission"
  },
  "response": [
    {
      "name": "Limits",
      "originalRequest": {
        "method": "GET",
        "header": [
        ],
        "url": {
          "raw": "{{_endpoint}}/services/data/v{{version}}/limits",
          "host": [
            "{{_endpoint}}"
          ],
          "path": [
            "services",
            "data",
            "v{{version}}",
            "limits"
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Date",
          "value": "Tue, 26 Sep 2023 13:19:11 GMT"
        },
        {
          "key": "Strict-Transport-Security",
          "value": "max-age=63072000; includeSubDomains"
        },
        {
          "key": "X-Content-Type-Options",
          "value": "nosniff"
        },
        {
          "key": "X-XSS-Protection",
          "value": "1; mode=block"
        },
        {
          "key": "X-Robots-Tag",
          "value": "none"
        },
        {
          "key": "Cache-Control",
          "value": "no-cache,must-revalidate,max-age=0,no-store,private"
        },
        {
          "key": "Sforce-Limit-Info",
          "value": "api-usage=1/15000"
        },
        {
          "key": "Content-Type",
          "value": "application/json;charset=UTF-8"
        },
        {
          "key": "Vary",
          "value": "Accept-Encoding"
        },
        {
          "key": "Content-Encoding",
          "value": "gzip"
        },
        {
          "key": "Transfer-Encoding",
          "value": "chunked"
        }
      ],
      "cookie": [
      ],
      "body": "{\n    \"ActiveScratchOrgs\": {\n        \"Max\": 3,\n        \"Remaining\": 3\n    },\n    \"AnalyticsExternalDataSizeMB\": {\n        \"Max\": 40960,\n        \"Remaining\": 40960\n    },\n    \"ConcurrentAsyncGetReportInstances\": {\n        \"Max\": 200,\n        \"Remaining\": 200\n    },\n    \"ConcurrentEinsteinDataInsightsStoryCreation\": {\n        \"Max\": 5,\n        \"Remaining\": 5\n    },\n    \"ConcurrentEinsteinDiscoveryStoryCreation\": {\n        \"Max\": 2,\n        \"Remaining\": 2\n    },\n    \"ConcurrentSyncReportRuns\": {\n        \"Max\": 20,\n        \"Remaining\": 20\n    },\n    \"DailyAnalyticsDataflowJobExecutions\": {\n        \"Max\": 60,\n        \"Remaining\": 60\n    },\n    \"DailyAnalyticsUploadedFilesSizeMB\": {\n        \"Max\": 51200,\n        \"Remaining\": 51200\n    },\n    \"DailyApiRequests\": {\n        \"Max\": 15000,\n        \"Remaining\": 14999\n    },\n    \"DailyAsyncApexExecutions\": {\n        \"Max\": 250000,\n        \"Remaining\": 250000\n    },\n    \"DailyAsyncApexTests\": {\n        \"Max\": 540,\n        \"Remaining\": 540\n    },\n    \"DailyBulkApiBatches\": {\n        \"Max\": 15000,\n        \"Remaining\": 15000\n    },\n    \"DailyBulkV2QueryFileStorageMB\": {\n        \"Max\": 976562,\n        \"Remaining\": 976562\n    },\n    \"DailyBulkV2QueryJobs\": {\n        \"Max\": 10000,\n        \"Remaining\": 10000\n    },\n    \"DailyDeliveredPlatformEvents\": {\n        \"Max\": 10000,\n        \"Remaining\": 10000\n    },\n    \"DailyDurableGenericStreamingApiEvents\": {\n        \"Max\": 10000,\n        \"Remaining\": 10000\n    },\n    \"DailyDurableStreamingApiEvents\": {\n        \"Max\": 10000,\n        \"Remaining\": 10000\n    },\n    \"DailyEinsteinDataInsightsStoryCreation\": {\n        \"Max\": 1000,\n        \"Remaining\": 1000\n    },\n    \"DailyEinsteinDiscoveryOptimizationJobRuns\": {\n        \"Max\": 25,\n        \"Remaining\": 25\n    },\n    \"DailyEinsteinDiscoveryPredictAPICalls\": {\n        \"Max\": 50000,\n        \"Remaining\": 50000\n    },\n    \"DailyEinsteinDiscoveryPredictionsByCDC\": {\n        \"Max\": 500000,\n        \"Remaining\": 500000\n    },\n    \"DailyEinsteinDiscoveryStoryCreation\": {\n        \"Max\": 100,\n        \"Remaining\": 100\n    },\n    \"DailyFunctionsApiCallLimit\": {\n        \"Max\": 50000,\n        \"Remaining\": 50000\n    },\n    \"DailyGenericStreamingApiEvents\": {\n        \"Max\": 10000,\n        \"Remaining\": 10000\n    },\n    \"DailyScratchOrgs\": {\n        \"Max\": 6,\n        \"Remaining\": 6\n    },\n    \"DailyStandardVolumePlatformEvents\": {\n        \"Max\": 10000,\n        \"Remaining\": 10000\n    },\n    \"DailyStreamingApiEvents\": {\n        \"Max\": 10000,\n        \"Remaining\": 10000\n    },\n    \"DailyWorkflowEmails\": {\n        \"Max\": 405,\n        \"Remaining\": 405\n    },\n    \"DataStorageMB\": {\n        \"Max\": 5,\n        \"Remaining\": 5\n    },\n    \"DurableStreamingApiConcurrentClients\": {\n        \"Max\": 20,\n        \"Remaining\": 20\n    },\n    \"FileStorageMB\": {\n        \"Max\": 20,\n        \"Remaining\": 20\n    },\n    \"HourlyAsyncReportRuns\": {\n        \"Max\": 1200,\n        \"Remaining\": 1200\n    },\n    \"HourlyDashboardRefreshes\": {\n        \"Max\": 200,\n        \"Remaining\": 200\n    },\n    \"HourlyDashboardResults\": {\n        \"Max\": 5000,\n        \"Remaining\": 5000\n    },\n    \"HourlyDashboardStatuses\": {\n        \"Max\": 999999999,\n        \"Remaining\": 999999999\n    },\n    \"HourlyLongTermIdMapping\": {\n        \"Max\": 100000,\n        \"Remaining\": 100000\n    },\n    \"HourlyManagedContentPublicRequests\": {\n        \"Max\": 50000,\n        \"Remaining\": 50000\n    },\n    \"HourlyODataCallout\": {\n        \"Max\": 1000,\n        \"Remaining\": 1000\n    },\n    \"HourlyPublishedPlatformEvents\": {\n        \"Max\": 50000,\n        \"Remaining\": 50000\n    },\n    \"HourlyPublishedStandardVolumePlatformEvents\": {\n        \"Max\": 1000,\n        \"Remaining\": 1000\n    },\n    \"HourlyShortTermIdMapping\": {\n        \"Max\": 100000,\n        \"Remaining\": 100000\n    },\n    \"HourlySyncReportRuns\": {\n        \"Max\": 500,\n        \"Remaining\": 500\n    },\n    \"HourlyTimeBasedWorkflow\": {\n        \"Max\": 50,\n        \"Remaining\": 50\n    },\n    \"MassEmail\": {\n        \"Max\": 10,\n        \"Remaining\": 10\n    },\n    \"MonthlyEinsteinDiscoveryStoryCreation\": {\n        \"Max\": 500,\n        \"Remaining\": 500\n    },\n    \"Package2VersionCreates\": {\n        \"Max\": 6,\n        \"Remaining\": 6\n    },\n    \"Package2VersionCreatesWithoutValidation\": {\n        \"Max\": 500,\n        \"Remaining\": 500\n    },\n    \"PermissionSets\": {\n        \"Max\": 1500,\n        \"Remaining\": 1498,\n        \"CreateCustom\": {\n            \"Max\": 1000,\n            \"Remaining\": 998\n        }\n    },\n    \"PrivateConnectOutboundCalloutHourlyLimitMB\": {\n        \"Max\": 0,\n        \"Remaining\": 0\n    },\n    \"PublishCallbackUsageInApex\": {\n        \"Max\": 5242880,\n        \"Remaining\": 5242880\n    },\n    \"SingleEmail\": {\n        \"Max\": 15,\n        \"Remaining\": 15\n    },\n    \"StreamingApiConcurrentClients\": {\n        \"Max\": 20,\n        \"Remaining\": 20\n    }\n}"
    }
  ]
}