Back to Collection Items
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
DECLARE @hr int
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
DECLARE @sTmp0 nvarchar(4000)
-- This example assumes the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
DECLARE @http int
-- Use "Chilkat_9_5_0.Http" for versions of Chilkat < 10.0.0
EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
DECLARE @success int
-- Adds the "Authorization: Bearer <access_token>" header.
EXEC sp_OASetProperty @http, 'AuthToken', '<access_token>'
DECLARE @sbResponseBody int
-- Use "Chilkat_9_5_0.StringBuilder" for versions of Chilkat < 10.0.0
EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbResponseBody OUT
EXEC sp_OAMethod @http, 'QuickGetSb', @success OUT, 'https://domain.com/services/data/v{{version}}/limits', @sbResponseBody
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @sbResponseBody
RETURN
END
DECLARE @jResp int
-- Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0
EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @jResp OUT
EXEC sp_OAMethod @jResp, 'LoadSb', @success OUT, @sbResponseBody
EXEC sp_OASetProperty @jResp, 'EmitCompact', 0
PRINT 'Response Body:'
EXEC sp_OAMethod @jResp, 'Emit', @sTmp0 OUT
PRINT @sTmp0
DECLARE @respStatusCode int
EXEC sp_OAGetProperty @http, 'LastStatus', @respStatusCode OUT
PRINT 'Response Status Code = ' + @respStatusCode
IF @respStatusCode >= 400
BEGIN
PRINT 'Response Header:'
EXEC sp_OAGetProperty @http, 'LastHeader', @sTmp0 OUT
PRINT @sTmp0
PRINT 'Failed.'
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @sbResponseBody
EXEC @hr = sp_OADestroy @jResp
RETURN
END
-- 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
DECLARE @Max int
EXEC sp_OAMethod @jResp, 'IntOf', @Max OUT, 'ActiveScratchOrgs.Max'
DECLARE @Remaining int
EXEC sp_OAMethod @jResp, 'IntOf', @Remaining OUT, 'ActiveScratchOrgs.Remaining'
DECLARE @AnalyticsExternalDataSizeMBMax int
EXEC sp_OAMethod @jResp, 'IntOf', @AnalyticsExternalDataSizeMBMax OUT, 'AnalyticsExternalDataSizeMB.Max'
DECLARE @AnalyticsExternalDataSizeMBRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @AnalyticsExternalDataSizeMBRemaining OUT, 'AnalyticsExternalDataSizeMB.Remaining'
DECLARE @ConcurrentAsyncGetReportInstancesMax int
EXEC sp_OAMethod @jResp, 'IntOf', @ConcurrentAsyncGetReportInstancesMax OUT, 'ConcurrentAsyncGetReportInstances.Max'
DECLARE @ConcurrentAsyncGetReportInstancesRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @ConcurrentAsyncGetReportInstancesRemaining OUT, 'ConcurrentAsyncGetReportInstances.Remaining'
DECLARE @ConcurrentEinsteinDataInsightsStoryCreationMax int
EXEC sp_OAMethod @jResp, 'IntOf', @ConcurrentEinsteinDataInsightsStoryCreationMax OUT, 'ConcurrentEinsteinDataInsightsStoryCreation.Max'
DECLARE @ConcurrentEinsteinDataInsightsStoryCreationRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @ConcurrentEinsteinDataInsightsStoryCreationRemaining OUT, 'ConcurrentEinsteinDataInsightsStoryCreation.Remaining'
DECLARE @ConcurrentEinsteinDiscoveryStoryCreationMax int
EXEC sp_OAMethod @jResp, 'IntOf', @ConcurrentEinsteinDiscoveryStoryCreationMax OUT, 'ConcurrentEinsteinDiscoveryStoryCreation.Max'
DECLARE @ConcurrentEinsteinDiscoveryStoryCreationRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @ConcurrentEinsteinDiscoveryStoryCreationRemaining OUT, 'ConcurrentEinsteinDiscoveryStoryCreation.Remaining'
DECLARE @ConcurrentSyncReportRunsMax int
EXEC sp_OAMethod @jResp, 'IntOf', @ConcurrentSyncReportRunsMax OUT, 'ConcurrentSyncReportRuns.Max'
DECLARE @ConcurrentSyncReportRunsRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @ConcurrentSyncReportRunsRemaining OUT, 'ConcurrentSyncReportRuns.Remaining'
DECLARE @DailyAnalyticsDataflowJobExecutionsMax int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyAnalyticsDataflowJobExecutionsMax OUT, 'DailyAnalyticsDataflowJobExecutions.Max'
DECLARE @DailyAnalyticsDataflowJobExecutionsRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyAnalyticsDataflowJobExecutionsRemaining OUT, 'DailyAnalyticsDataflowJobExecutions.Remaining'
DECLARE @DailyAnalyticsUploadedFilesSizeMBMax int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyAnalyticsUploadedFilesSizeMBMax OUT, 'DailyAnalyticsUploadedFilesSizeMB.Max'
DECLARE @DailyAnalyticsUploadedFilesSizeMBRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyAnalyticsUploadedFilesSizeMBRemaining OUT, 'DailyAnalyticsUploadedFilesSizeMB.Remaining'
DECLARE @DailyApiRequestsMax int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyApiRequestsMax OUT, 'DailyApiRequests.Max'
DECLARE @DailyApiRequestsRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyApiRequestsRemaining OUT, 'DailyApiRequests.Remaining'
DECLARE @DailyAsyncApexExecutionsMax int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyAsyncApexExecutionsMax OUT, 'DailyAsyncApexExecutions.Max'
DECLARE @DailyAsyncApexExecutionsRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyAsyncApexExecutionsRemaining OUT, 'DailyAsyncApexExecutions.Remaining'
DECLARE @DailyAsyncApexTestsMax int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyAsyncApexTestsMax OUT, 'DailyAsyncApexTests.Max'
DECLARE @DailyAsyncApexTestsRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyAsyncApexTestsRemaining OUT, 'DailyAsyncApexTests.Remaining'
DECLARE @DailyBulkApiBatchesMax int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyBulkApiBatchesMax OUT, 'DailyBulkApiBatches.Max'
DECLARE @DailyBulkApiBatchesRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyBulkApiBatchesRemaining OUT, 'DailyBulkApiBatches.Remaining'
DECLARE @DailyBulkV2QueryFileStorageMBMax int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyBulkV2QueryFileStorageMBMax OUT, 'DailyBulkV2QueryFileStorageMB.Max'
DECLARE @DailyBulkV2QueryFileStorageMBRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyBulkV2QueryFileStorageMBRemaining OUT, 'DailyBulkV2QueryFileStorageMB.Remaining'
DECLARE @DailyBulkV2QueryJobsMax int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyBulkV2QueryJobsMax OUT, 'DailyBulkV2QueryJobs.Max'
DECLARE @DailyBulkV2QueryJobsRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyBulkV2QueryJobsRemaining OUT, 'DailyBulkV2QueryJobs.Remaining'
DECLARE @DailyDeliveredPlatformEventsMax int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyDeliveredPlatformEventsMax OUT, 'DailyDeliveredPlatformEvents.Max'
DECLARE @DailyDeliveredPlatformEventsRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyDeliveredPlatformEventsRemaining OUT, 'DailyDeliveredPlatformEvents.Remaining'
DECLARE @DailyDurableGenericStreamingApiEventsMax int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyDurableGenericStreamingApiEventsMax OUT, 'DailyDurableGenericStreamingApiEvents.Max'
DECLARE @DailyDurableGenericStreamingApiEventsRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyDurableGenericStreamingApiEventsRemaining OUT, 'DailyDurableGenericStreamingApiEvents.Remaining'
DECLARE @DailyDurableStreamingApiEventsMax int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyDurableStreamingApiEventsMax OUT, 'DailyDurableStreamingApiEvents.Max'
DECLARE @DailyDurableStreamingApiEventsRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyDurableStreamingApiEventsRemaining OUT, 'DailyDurableStreamingApiEvents.Remaining'
DECLARE @DailyEinsteinDataInsightsStoryCreationMax int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyEinsteinDataInsightsStoryCreationMax OUT, 'DailyEinsteinDataInsightsStoryCreation.Max'
DECLARE @DailyEinsteinDataInsightsStoryCreationRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyEinsteinDataInsightsStoryCreationRemaining OUT, 'DailyEinsteinDataInsightsStoryCreation.Remaining'
DECLARE @DailyEinsteinDiscoveryOptimizationJobRunsMax int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyEinsteinDiscoveryOptimizationJobRunsMax OUT, 'DailyEinsteinDiscoveryOptimizationJobRuns.Max'
DECLARE @DailyEinsteinDiscoveryOptimizationJobRunsRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyEinsteinDiscoveryOptimizationJobRunsRemaining OUT, 'DailyEinsteinDiscoveryOptimizationJobRuns.Remaining'
DECLARE @DailyEinsteinDiscoveryPredictAPICallsMax int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyEinsteinDiscoveryPredictAPICallsMax OUT, 'DailyEinsteinDiscoveryPredictAPICalls.Max'
DECLARE @DailyEinsteinDiscoveryPredictAPICallsRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyEinsteinDiscoveryPredictAPICallsRemaining OUT, 'DailyEinsteinDiscoveryPredictAPICalls.Remaining'
DECLARE @DailyEinsteinDiscoveryPredictionsByCDCMax int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyEinsteinDiscoveryPredictionsByCDCMax OUT, 'DailyEinsteinDiscoveryPredictionsByCDC.Max'
DECLARE @DailyEinsteinDiscoveryPredictionsByCDCRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyEinsteinDiscoveryPredictionsByCDCRemaining OUT, 'DailyEinsteinDiscoveryPredictionsByCDC.Remaining'
DECLARE @DailyEinsteinDiscoveryStoryCreationMax int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyEinsteinDiscoveryStoryCreationMax OUT, 'DailyEinsteinDiscoveryStoryCreation.Max'
DECLARE @DailyEinsteinDiscoveryStoryCreationRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyEinsteinDiscoveryStoryCreationRemaining OUT, 'DailyEinsteinDiscoveryStoryCreation.Remaining'
DECLARE @DailyFunctionsApiCallLimitMax int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyFunctionsApiCallLimitMax OUT, 'DailyFunctionsApiCallLimit.Max'
DECLARE @DailyFunctionsApiCallLimitRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyFunctionsApiCallLimitRemaining OUT, 'DailyFunctionsApiCallLimit.Remaining'
DECLARE @DailyGenericStreamingApiEventsMax int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyGenericStreamingApiEventsMax OUT, 'DailyGenericStreamingApiEvents.Max'
DECLARE @DailyGenericStreamingApiEventsRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyGenericStreamingApiEventsRemaining OUT, 'DailyGenericStreamingApiEvents.Remaining'
DECLARE @DailyScratchOrgsMax int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyScratchOrgsMax OUT, 'DailyScratchOrgs.Max'
DECLARE @DailyScratchOrgsRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyScratchOrgsRemaining OUT, 'DailyScratchOrgs.Remaining'
DECLARE @DailyStandardVolumePlatformEventsMax int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyStandardVolumePlatformEventsMax OUT, 'DailyStandardVolumePlatformEvents.Max'
DECLARE @DailyStandardVolumePlatformEventsRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyStandardVolumePlatformEventsRemaining OUT, 'DailyStandardVolumePlatformEvents.Remaining'
DECLARE @DailyStreamingApiEventsMax int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyStreamingApiEventsMax OUT, 'DailyStreamingApiEvents.Max'
DECLARE @DailyStreamingApiEventsRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyStreamingApiEventsRemaining OUT, 'DailyStreamingApiEvents.Remaining'
DECLARE @DailyWorkflowEmailsMax int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyWorkflowEmailsMax OUT, 'DailyWorkflowEmails.Max'
DECLARE @DailyWorkflowEmailsRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @DailyWorkflowEmailsRemaining OUT, 'DailyWorkflowEmails.Remaining'
DECLARE @DataStorageMBMax int
EXEC sp_OAMethod @jResp, 'IntOf', @DataStorageMBMax OUT, 'DataStorageMB.Max'
DECLARE @DataStorageMBRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @DataStorageMBRemaining OUT, 'DataStorageMB.Remaining'
DECLARE @DurableStreamingApiConcurrentClientsMax int
EXEC sp_OAMethod @jResp, 'IntOf', @DurableStreamingApiConcurrentClientsMax OUT, 'DurableStreamingApiConcurrentClients.Max'
DECLARE @DurableStreamingApiConcurrentClientsRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @DurableStreamingApiConcurrentClientsRemaining OUT, 'DurableStreamingApiConcurrentClients.Remaining'
DECLARE @FileStorageMBMax int
EXEC sp_OAMethod @jResp, 'IntOf', @FileStorageMBMax OUT, 'FileStorageMB.Max'
DECLARE @FileStorageMBRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @FileStorageMBRemaining OUT, 'FileStorageMB.Remaining'
DECLARE @HourlyAsyncReportRunsMax int
EXEC sp_OAMethod @jResp, 'IntOf', @HourlyAsyncReportRunsMax OUT, 'HourlyAsyncReportRuns.Max'
DECLARE @HourlyAsyncReportRunsRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @HourlyAsyncReportRunsRemaining OUT, 'HourlyAsyncReportRuns.Remaining'
DECLARE @HourlyDashboardRefreshesMax int
EXEC sp_OAMethod @jResp, 'IntOf', @HourlyDashboardRefreshesMax OUT, 'HourlyDashboardRefreshes.Max'
DECLARE @HourlyDashboardRefreshesRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @HourlyDashboardRefreshesRemaining OUT, 'HourlyDashboardRefreshes.Remaining'
DECLARE @HourlyDashboardResultsMax int
EXEC sp_OAMethod @jResp, 'IntOf', @HourlyDashboardResultsMax OUT, 'HourlyDashboardResults.Max'
DECLARE @HourlyDashboardResultsRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @HourlyDashboardResultsRemaining OUT, 'HourlyDashboardResults.Remaining'
DECLARE @HourlyDashboardStatusesMax int
EXEC sp_OAMethod @jResp, 'IntOf', @HourlyDashboardStatusesMax OUT, 'HourlyDashboardStatuses.Max'
DECLARE @HourlyDashboardStatusesRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @HourlyDashboardStatusesRemaining OUT, 'HourlyDashboardStatuses.Remaining'
DECLARE @HourlyLongTermIdMappingMax int
EXEC sp_OAMethod @jResp, 'IntOf', @HourlyLongTermIdMappingMax OUT, 'HourlyLongTermIdMapping.Max'
DECLARE @HourlyLongTermIdMappingRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @HourlyLongTermIdMappingRemaining OUT, 'HourlyLongTermIdMapping.Remaining'
DECLARE @HourlyManagedContentPublicRequestsMax int
EXEC sp_OAMethod @jResp, 'IntOf', @HourlyManagedContentPublicRequestsMax OUT, 'HourlyManagedContentPublicRequests.Max'
DECLARE @HourlyManagedContentPublicRequestsRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @HourlyManagedContentPublicRequestsRemaining OUT, 'HourlyManagedContentPublicRequests.Remaining'
DECLARE @HourlyODataCalloutMax int
EXEC sp_OAMethod @jResp, 'IntOf', @HourlyODataCalloutMax OUT, 'HourlyODataCallout.Max'
DECLARE @HourlyODataCalloutRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @HourlyODataCalloutRemaining OUT, 'HourlyODataCallout.Remaining'
DECLARE @HourlyPublishedPlatformEventsMax int
EXEC sp_OAMethod @jResp, 'IntOf', @HourlyPublishedPlatformEventsMax OUT, 'HourlyPublishedPlatformEvents.Max'
DECLARE @HourlyPublishedPlatformEventsRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @HourlyPublishedPlatformEventsRemaining OUT, 'HourlyPublishedPlatformEvents.Remaining'
DECLARE @HourlyPublishedStandardVolumePlatformEventsMax int
EXEC sp_OAMethod @jResp, 'IntOf', @HourlyPublishedStandardVolumePlatformEventsMax OUT, 'HourlyPublishedStandardVolumePlatformEvents.Max'
DECLARE @HourlyPublishedStandardVolumePlatformEventsRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @HourlyPublishedStandardVolumePlatformEventsRemaining OUT, 'HourlyPublishedStandardVolumePlatformEvents.Remaining'
DECLARE @HourlyShortTermIdMappingMax int
EXEC sp_OAMethod @jResp, 'IntOf', @HourlyShortTermIdMappingMax OUT, 'HourlyShortTermIdMapping.Max'
DECLARE @HourlyShortTermIdMappingRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @HourlyShortTermIdMappingRemaining OUT, 'HourlyShortTermIdMapping.Remaining'
DECLARE @HourlySyncReportRunsMax int
EXEC sp_OAMethod @jResp, 'IntOf', @HourlySyncReportRunsMax OUT, 'HourlySyncReportRuns.Max'
DECLARE @HourlySyncReportRunsRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @HourlySyncReportRunsRemaining OUT, 'HourlySyncReportRuns.Remaining'
DECLARE @HourlyTimeBasedWorkflowMax int
EXEC sp_OAMethod @jResp, 'IntOf', @HourlyTimeBasedWorkflowMax OUT, 'HourlyTimeBasedWorkflow.Max'
DECLARE @HourlyTimeBasedWorkflowRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @HourlyTimeBasedWorkflowRemaining OUT, 'HourlyTimeBasedWorkflow.Remaining'
DECLARE @MassEmailMax int
EXEC sp_OAMethod @jResp, 'IntOf', @MassEmailMax OUT, 'MassEmail.Max'
DECLARE @MassEmailRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @MassEmailRemaining OUT, 'MassEmail.Remaining'
DECLARE @MonthlyEinsteinDiscoveryStoryCreationMax int
EXEC sp_OAMethod @jResp, 'IntOf', @MonthlyEinsteinDiscoveryStoryCreationMax OUT, 'MonthlyEinsteinDiscoveryStoryCreation.Max'
DECLARE @MonthlyEinsteinDiscoveryStoryCreationRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @MonthlyEinsteinDiscoveryStoryCreationRemaining OUT, 'MonthlyEinsteinDiscoveryStoryCreation.Remaining'
DECLARE @Package2VersionCreatesMax int
EXEC sp_OAMethod @jResp, 'IntOf', @Package2VersionCreatesMax OUT, 'Package2VersionCreates.Max'
DECLARE @Package2VersionCreatesRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @Package2VersionCreatesRemaining OUT, 'Package2VersionCreates.Remaining'
DECLARE @Package2VersionCreatesWithoutValidationMax int
EXEC sp_OAMethod @jResp, 'IntOf', @Package2VersionCreatesWithoutValidationMax OUT, 'Package2VersionCreatesWithoutValidation.Max'
DECLARE @Package2VersionCreatesWithoutValidationRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @Package2VersionCreatesWithoutValidationRemaining OUT, 'Package2VersionCreatesWithoutValidation.Remaining'
DECLARE @PermissionSetsMax int
EXEC sp_OAMethod @jResp, 'IntOf', @PermissionSetsMax OUT, 'PermissionSets.Max'
DECLARE @PermissionSetsRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @PermissionSetsRemaining OUT, 'PermissionSets.Remaining'
DECLARE @CreateCustomMax int
EXEC sp_OAMethod @jResp, 'IntOf', @CreateCustomMax OUT, 'PermissionSets.CreateCustom.Max'
DECLARE @CreateCustomRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @CreateCustomRemaining OUT, 'PermissionSets.CreateCustom.Remaining'
DECLARE @PrivateConnectOutboundCalloutHourlyLimitMBMax int
EXEC sp_OAMethod @jResp, 'IntOf', @PrivateConnectOutboundCalloutHourlyLimitMBMax OUT, 'PrivateConnectOutboundCalloutHourlyLimitMB.Max'
DECLARE @PrivateConnectOutboundCalloutHourlyLimitMBRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @PrivateConnectOutboundCalloutHourlyLimitMBRemaining OUT, 'PrivateConnectOutboundCalloutHourlyLimitMB.Remaining'
DECLARE @PublishCallbackUsageInApexMax int
EXEC sp_OAMethod @jResp, 'IntOf', @PublishCallbackUsageInApexMax OUT, 'PublishCallbackUsageInApex.Max'
DECLARE @PublishCallbackUsageInApexRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @PublishCallbackUsageInApexRemaining OUT, 'PublishCallbackUsageInApex.Remaining'
DECLARE @SingleEmailMax int
EXEC sp_OAMethod @jResp, 'IntOf', @SingleEmailMax OUT, 'SingleEmail.Max'
DECLARE @SingleEmailRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @SingleEmailRemaining OUT, 'SingleEmail.Remaining'
DECLARE @StreamingApiConcurrentClientsMax int
EXEC sp_OAMethod @jResp, 'IntOf', @StreamingApiConcurrentClientsMax OUT, 'StreamingApiConcurrentClients.Max'
DECLARE @StreamingApiConcurrentClientsRemaining int
EXEC sp_OAMethod @jResp, 'IntOf', @StreamingApiConcurrentClientsRemaining OUT, 'StreamingApiConcurrentClients.Remaining'
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @sbResponseBody
EXEC @hr = sp_OADestroy @jResp
END
GO
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}"
}
]
}