Detailed API documentation
The Swagger API documentation is always up-to-date and lets you try out any query with your user session or an API-key.
To perform a simple PDNS query, use
where "<query>" is a DNS query or answer string to lookup, for example
There are multiple query parameters that can be passed along:
|Parameter||Possible values||Default value||Description|
Limit the number of returned values.
A value of "0" means that the client explicitly requests an unlimited resultset.
Skip the initial <offset> number of values in the resultset.
Together with the parameter "limit", this allows a client to perform pagination of the results.
|rrClass||Any DNS record class||<any>|
The most probable record class is IN.
By default, this field is not filtered.
|rrType||Any DNS record type||<any>|
The most used record classes are A, AAAA, PTR, CNAME and MX, but any supported DNS record name can be used here.
By default, this field is not filtered.
|The following options are only meaningful for use with private PDNS data|
If the user is authenticated, and has access to private PDNS data, this filter can limit which customers to return data for.
Only records from customers the user has access to will be affected by this filter.
Public data from other customers are "anonymous", and can be filtered out using the parameter "includeAnonymous".
If set, limit the returned records by TLP.
For customers which the user does not have access to private data, only TLP white records will be returned.
If the user is not authenticated, then also will only TLP white records be returned.
The PDNS service contains data from multiple customers, and PDNS records are stored per customer.
By default, any data returned by the service will be aggregated into one record per query/answer tuple.
If aggregate is set to false, the service will return each non-anonymous record separately.
If true (default), any public data in the PDNS service will be included in the query results.
If set to false, only data from customers the user has access to will be included.
The result format is JSON, and consists of a result container, and a number of results.
The result container has the following format
Each query result has the following format:
Query for any record concerning the domain "cnn.com".
|Query for A-records for the domain "cnn.com"|
|Query for A-records and MX-records for the domain "cnn.com"|
|Query for any record for the IPv4 address "184.108.40.206"|
Query for any record for the IPv6 address "2a04:4e42:400::323"
JSON query format
An alternative to a simple GET-string is a POST query with a JSON query format to the URL
The POST-query is currently permitting the same parameters as the GET query, but new future parameters or advanced/nested parameters may be added only to the JSON query format as an "advanced format".
The PDNS API is publicly available, and does not require authentication.
However, unauthenticated queries are limited to see only public data (TLP white), and are limited to 1000 requests per day (currently).
To access private data (granted that mnemonic is collecting PDNS data from your customer), you need to use an authenticated query.
Also, users with an extended PDNS resource limit must use authenticated queries to be able to use their quota.
To authenticate your query, you need to request an API key from mnemonic.
To use that API-key, add a HTTP header to your request:
All users are subject to resource limitations.
- Unauthenticated users are limited to 100 requests per minute, and 1000 requests per day.
- Authenticated users are limited according to their agreement with mnemonic.
If you hit the resource limit, Argus will return a 402 error, with the following JSON response:
The resource limit is calculated both per minute and per day.
- If you reach the per-minute (short-term) resource limit, you will typically be rejected for a short period, to save resources on our end.
- If you reach the per-day (long-term) resource limit, you will typically be rejected for a period up to 24 hours. This means you have exhausted the data quota granted by mnemonic.
If you find yourself reaching the per-day resource limit a lot, you may want to request a higher resource quota from mnemonic
Please use the metadata key "millisUntilResourcesAvailable" to let your client back off gracefully.
- No labels