BlastIQ External API



This guide is intended for Developers integrating BlastIQ data into their applications and other users wanting to directly access their BlastIQ data using the BlastIQ External API.


The BlastIQ External API currently allows authorised users and authenticated systems to read their blasting information from BlastIQ, including:

  • Drill Hole Designs
  • Drill Hole QA/QC Actual Measurement history
  • Bulk Explosive Loading Designs
  • Bulk Explosive Loading Actual Measurement history
  • Drilling records

It also allows authorised users and authenticated systems to write their blasting information to BlastIQ, including:

  • Drill Hole Designs
  • Drill As Drilled Records
  • Drill Hole Measurement Records
  • Bulk Explosive Loading Designs
About API Versioning

The BlastIQ Customer REST API is versioned. New versions will be released for breaking changes. Breaking changes are changes that can potentially break an integration. Breaking changes include:

  • Removing an operation.
  • Removing or renaming a parameter.
  • Removing or renaming a response field.
  • Adding a new required parameter.
  • Making a previously optional parameter required.
  • Changing the type of a parameter or response field.
  • Removing a value from an enum definition.
  • Changing authentication or authorization requirements.

Additive changes are changes that should not break an integration. Additive changes include:

  • Adding an operation.
  • Adding an optional parameter.
  • Adding an optional request header.
  • Adding a response field.
  • Adding a response header.
  • Adding a value to an enum definition.
How to ensure that your client handles changes
  • Ensure your client can handle new response fields. e.g. do not expect the field list to always remain the same if enumerating fields.
  • Only integrate with the operations and response fields that you require.
  • Take special care with unknown enum value handling.
    • Many client generators create clients that will break on unknown enum values.
    • Always have an 'Unknown' value in client-side enums.
      • Ensure unknown enum values are deserialized as 'Unknown'. Example approach in c#
      • Ensure integration code gracefully handles data containing 'Unknown' enum values, e.g. skip entry and log a warning.
    • Alternately, use string properties in clients instead of enums and treat them as codes. You must still consider what to do when you receive a code you don't expect.
  • Consider using filters provided by the API to only return objects you understand. e.g. productTypes filter on /v3/{siteId}/products
Application Version Compatibility

Some new features on the API may not be supported by older versions of BlastIQ applications. Always update the BlastIQ applications on your site; if you use incompatible application versions, you should not use the new API features until they have been updated.

The following table lists new features and compatible application versions when all production versions of BlastIQ applications make use of new features, they will be removed from this table.

Feature Mobile Version LOADPlus Version SHOTPlus version
Hole Accessories v1.4.4449 N/A v6.x.x
Plan Accessories v1.4.4449 N/A v6.x.x
Rename Holes v1.4.4449 3.2.2+ None
Move Holes v1.4.4449 3.2.2+ None
Initiator Design v1.7.7425 N/A N/A
API Request Limits

When integrating with BlastIQ API, please consider the number of calls made to BlastIQ. BlastIQ enforces the following rate limits:

  • 20 requests per 10 seconds (2 requests per second)
  • 60 requests per minute (1 request per second)
  • 1200 requests per 4 hours (5 requests per minute)

Measures to prevent rate limit exceedance:

  • Make API calls sequentially rather than in parallel.
  • Delay 1s between API calls.
  • Delay 5s between calls to IsReady.
  • Only retrieve modified data rather than all data.
  • Many BlastIQ APIs support modifiedSince or receivedSince to reduce data returned.
  • Consider using a client-side rate-limiting library. e.g.

If the above limits do not meet your requirements, please get in touch with BlastIQ support.

Blast Control Event Rate Limit

The Blast Control API turns incoming requests into events for distribution to field devices (BlastIQ Mobile & LOADPlus). To ensure the correct operation of the system, rate limits are applied based on the number of events produced.

The following limits are currently enforced:

  • 15,000 per 10 minutes.
  • 30,000 per 1 hour.

These limits are unlikely to ever be encountered for live data import. However, they may be encountered if you attempt to import historical data.

A quick rule of thumb: at least 1 event will be produced for every hole/measurement/drill data, etc., you import. However, the number may be higher if the system has to correct for events being produced out of order in time.

Measures to prevent event rate limit exceedance:

  • Run data imports more regularly rather than waiting to send large batches of data all at once.
  • Set the isHistoricalImport parameter to true when importing historical drill data.
  • If importing a large amount of historical drill data, ensure that you send fewer than 5,000 entries per 10 minutes, or you will hit the hourly limit.
Providing Feedback

We welcome feedback on the BlastIQ APIs and suggestions for improvement, you can make suggestions and support the suggestions of other users here.

Getting Help

If you have questions or would like assistance with integration to BlastIQ, please raise a support ticket, and we would be happy to assist you.

Authorization Flow

Please see the Authorization Flow support documentation here:

Testing and interacting with the BlastIQ External API

A Swagger page is available to test the BlastIQ External API at:

The Swagger page provides details on data types, response codes and other information for developers.

When using Swagger, a login can be used for authentication.

Select the Authorize button at the top of the Swagger page. When presented with the Available authorizations window, ensure cosmos is selected (image below). The client_id is cosmos.external.swagger, and the client_secret remains blank. After selecting Authorize, you will be asked to log into BlastIQ.


Available API Methods

Use the Interactive Swagger page at to view available methods, parameters and example responses. The Schemas section at the bottom of the page provides a purpose, example and data type for every field.

API Version Status

Version 1: Deprecated Q1 2018

Version 2: Deprecated Q2 2020

Version 3: Production Q3 2019

Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request