The New Relic Insights query API is a REST API for making NRQL queries.
Tip
This API is no longer the preferred way to query New Relic data. Please use NerdGraph to do that.
Requirements and recommendations
This API is no longer the preferred way to query New Relic data. For best results, you should use NerdGraph to query data.
Use of this API may be restricted by role-related user permissions.
To add custom data to New Relic, see Report custom data.
If your organization hosts data in the EU data center, ensure you're using the proper EU region endpoints.
1. Register an API key
To use the Insights query API, you need a query key. You can have multiple query keys, and any query key can be used to initiate any Insights API query. If you have multiple systems querying Insights or different data destinations, New Relic recommends you use multiple query keys to enhance data security.
For security reasons, query keys cannot be altered or read using the API. To change or read a query key, use the New Relic UI.
Tip
This API is no longer the preferred way to query New Relic data. Please use NerdGraph to do that.
To create a new query key:
Go to one.newrelic.com/api-keys. If you are using the EU data center, go to one.eu.newrelic.com/api-keys instead.
Click Create a key button located in the top-right corner of the API keys page.
Configure the new key:
- Enter a name for the new key in the provided field.
- Add a description (such as "Query key").
- Click Save to generate the new key.
2. Create the API query request
When you create or edit a query key, you will see an example curl
query that you can use as a template. The example query won't work unless you follow these query rules:
- The NRQL query string must be URL-encoded.
- The query string must be less than 4000 bytes.
- The URL must contain a valid account ID.
- The
X-Query-Key
must contain a valid query key. - The
Content-Type
must beapplication/json
.
Linux
Here is a curl
example:
curl -H "Accept: application/json" -H "X-Query-Key: YOUR_QUERY_KEY" "https://insights-api.newrelic.com/v1/accounts/YOUR_ACCOUNT_ID/query?nrql=YOUR_URL_ENCODED_QUERY"
Microsoft Windows
You can use Powershell to query events via API:
Invoke-WebRequest -Uri https://insights-api.newrelic.com/v1/accounts/YOUR_ACCOUNT_ID/query?nrql=YOUR_URL_ENCODED_QUERY -Headers @{"X-Query-Key"="YOUR_QUERY_KEY"} -ContentType "application/json" -Method GET
3. Process the returned JSON
The query API returns results in JSON format. There is a limit of 5,000 results per request.
The structure of the JSON data depends on the NRQL that you used in the request: Different combinations of SELECT
statements, clauses, and functions each return an appropriate response. When writing your code to process the JSON, you should do a test run of your query and examine the resulting JSON.
Example
The Insights query API returns JSON data. Here's an example of a query, its query request format, and its returned data:
Rate limiting guidelines
We have query rate limits. You likely won't encounter these limits, especially if you follow these general guidelines:
- Limit the amount of requests with complex queries (for example, queries with
FACET
orTIMESERIES
clauses, or queries of over a million events) run at the same time. - Limit the amount of requests run concurrently over extended periods of time to a maximum of 5, especially if they include complex queries.
If New Relic applies rate limits on your account for the number of queries per minute, the query API returns a 429 error. If New Relic applies rate limits on your account for records inspected, the query API returns a 503 error and your charts may display timeout error messages.