Request and Response Formats
Request
The No-IP API follows HTTP standards. URL path segments and query parameter are expected to be percent-encoded.
The request body is always JSON format unless otherwise noted. The content-type HTTP header must be set to application/json.
Example Request with Curl
curl --user ":<api key>" \
--header "Content-Type: application/json" \
--data '{"zone_name": "example.com"}' \
https://api.noip.com/v1/dns/zones
Response
The No-IP API makes use of the standard HTTP response codes to indicate success and failure. Specific possible codes are included for each resource in the API reference.
- 200 - 299: Success.
- 400 - 499: Client error; correct the error in the request and submit it again.
- 500 - 599: Server error; the API is experiencing problems. Our engineering team has been automatically notified.
Success
The response body of successful requests will be returned as a JSON object. If there is data in the response it will be under the data key.
{
"data": {
"name": "example.com",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2024-08-24T14:15:22Z"
}
}Other keys may exist that describe or augment the data, such as warnings and page information.
Paging
When the data key is an array a sibling key, page, will accompany it with information about the list.
page is an object with three keys,
limit: the maximum number of items in thedataarray.offset: the start position of the data.total: the total number of items available.
Example
{
"data": [
{
"name": "example.com",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2024-08-24T14:15:22Z"
}
],
"page": {
"limit": 0,
"offset": 0,
"total": 10
}
}Warnings
A top level field warnings: [] may be included in all responses as a
sibling to data: and paging:. Non-critical indications may appear here,
such as approaching expirations and SPF formatting issues in TXT records.
Success Example
{
"data": [ ... ],
"page": { ... },
"warnings": [
{
"title": "Change may not be as expected",
"code": "W1000",
"detail": "Request was completed but has a possibly unwanted side effect."
}
]
}Errors
Responses with HTTP codes 400 - 499 will have a JSON response body. Responses
with HTTP codes 500 - 599 may have a JSON body but since they are a critical
server error that cannot be guaranteed.
The errors key will always be a list of objects.
Error object fields. id, code, and title will always be included.
id: a unique string that identifies this error in our logscode: identifies exactly in our code where the problem occurred and is very helpful in debuggingtitle: the main error messagedetail: additional information specific to this requestlocation: in what part of the request the error occurred. For instance "query" for the query string.pointer: more exact information on where the error occurred, such as a JSON pointer, if possible.
Example
{
"errors": [{
"id": "err_eXgLfYUj",
"code": "2451",
"title": "invalid request query",
"detail": "unknown variant `summary`, expected `detail` or `name_only`",
"location": "query"
}, {
"id": "err_oWfehpGt",
"code": "3809",
"title": "invalid url encoded request body",
}],
}Warnings
Non-critical indications may appear in the warnings key along with errors,
such as approaching expirations and SPF formatting issues in TXT records.
Error Example
{
"errors": [ ... ],
"warnings": [
{
"title": "Resource expiring soon",
"code": "W1001",
"detail": "The related resource will expire soon"
}
]
}Timestamps and Timezones
Timestamp fields in the No-IP API are represented as strings that are returned in the RFC 3339 format . Timestamps returned by the API are in UTC which is indicated by a Z at the end.
Rate Limits
The No-IP API enforces a limit on all accounts of 50 requests per 60 seconds with a burst of 750 requests in a 15 minute window. If you exceed the rate limit No-IP will return {"errors":[{"id":"err_xxxxxxxx","code":"1097","title":"too many requests","detail":""}]} and an HTTP Status Code of 429.
Details about the current rate limit state can be seen in the HTTP Header.
x-ratelimit-limit: 10
x-ratelimit-remaining: 9
x-ratelimit-reset: 0
For higher volume accounts please contact us to discuss our enterprise plans.
Updated 6 months ago
