Introduction
Welcome to the Nasuni Portal API.
The Portal API allows you to monitor and configure Nasuni resources managed by Portal in a simple programmatic way using conventional HTTP requests.
All endpoints should be prefixed with the appropriate regional base domain for your account:
- eu1.portal.api.nasuni.com
- as1.portal.api.nasuni.com
- am1.portal.api.nasuni.com
You can determine your regional base domain by logging into Portal and observing the URL in the address bar.
Requests & Responses
The Portal API is based on REST principles and is only reachable via HTTPS. In general, the API uses standard HTTP methods as described below:
| Method | Usage |
|---|---|
| GET | Retrieve resources |
| POST | Create resources |
| PATCH | Update resources |
| DELETE | Delete resources |
| HEAD | Determine if a resource exists |
In the case of all PATCH and some POST requests, a JSON-formatted body is used to
add the necessary arguments to the request.
When a request is successful, a response body will typically be sent back as JSON.
A typical successful request will return with a status code in the 200 range.
Return codes in the 400 range typically indicate that there was an issue with
the request that was sent. A status code in the 500 range generally indicates
a server-side problem. If you receive a 500 error, please contact support@nasuni.com.
Authentication
You will need either a user or service key to authenticate. Keys can be administered
from the API Keys Management page in Portal. Once you have a key, you can request an
access token via the /auth/token endpoint. See the Auth endpoint docmentation for
more details.
The /auth/token endpoint supports both legacy header-based authentication and
standard OAuth2 Client Credentials requests (application/x-www-form-urlencoded).
For third-party integrations (for example, Grafana, Datadog, Splunk, and ServiceNow),
use the OAuth2 request format shown below:
curl -X POST "https://<region>.portal.api.nasuni.com/auth/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "grant_type=client_credentials" \
--data-urlencode "client_id=<service_key_id>" \
--data-urlencode "client_secret=<service_key_secret>"The token response format is unchanged (access_token, refresh_token, token_type,
expires_in). The expires_in value is in seconds.
Rate Limiting
The Portal API enforces per-account rate limits to ensure fair usage and protect service availability.
| Limit | Default |
|---|---|
| Burst | 500 requests per 30-second window |
| Daily | 1,000,000 requests per day |
Telemetry endpoints (/telemetry/*) share the same default limits but may be configured with separate thresholds.
If a request exceeds the rate limit, a 429 Too Many Requests response is returned with an ErrorResponse body. When a burst limit is exceeded, the response includes a Retry-After header indicating the number of seconds to wait before retrying. Daily limit responses do not include the Retry-After header.