Chilkat Online Tools

Objective-C / Salesforce Platform APIs / Limits

Back to Collection Items

#import <CkoHttp.h>
#import <CkoStringBuilder.h>
#import <CkoJsonObject.h>

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

CkoHttp *http = [[CkoHttp alloc] init];
BOOL success;

// Adds the "Authorization: Bearer <access_token>" header.
http.AuthToken = @"<access_token>";

CkoStringBuilder *sbResponseBody = [[CkoStringBuilder alloc] init];
success = [http QuickGetSb: @"https://domain.com/services/data/v{{version}}/limits" sbContent: sbResponseBody];
if (success == NO) {
    NSLog(@"%@",http.LastErrorText);
    return;
}

CkoJsonObject *jResp = [[CkoJsonObject alloc] init];
[jResp LoadSb: sbResponseBody];
jResp.EmitCompact = NO;

NSLog(@"%@",@"Response Body:");
NSLog(@"%@",[jResp Emit]);

int respStatusCode = [http.LastStatus intValue];
NSLog(@"%@%d",@"Response Status Code = ",respStatusCode);
if (respStatusCode >= 400) {
    NSLog(@"%@",@"Response Header:");
    NSLog(@"%@",http.LastHeader);
    NSLog(@"%@",@"Failed.");
    return;
}

// 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

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

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}"
    }
  ]
}