curl --request POST \
--url https://api.iklim.co/v1/alarms/forecasts/page \
--header 'Content-Type: application/json' \
--data '
{
"pageNumber": 0,
"pageSize": 20,
"filterByRecipientIds": [
"customer-system-001",
"customer-system-002"
],
"filterByBoundary": {
"cityId": 6,
"districtId": 557
},
"accountId": "2f04f1b5-1c0a-4c4e-b0a7-0ba6e9b7f2e1"
}
'import requests
url = "https://api.iklim.co/v1/alarms/forecasts/page"
payload = {
"pageNumber": 0,
"pageSize": 20,
"filterByRecipientIds": ["customer-system-001", "customer-system-002"],
"filterByBoundary": {
"cityId": 6,
"districtId": 557
},
"accountId": "2f04f1b5-1c0a-4c4e-b0a7-0ba6e9b7f2e1"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
pageNumber: 0,
pageSize: 20,
filterByRecipientIds: ['customer-system-001', 'customer-system-002'],
filterByBoundary: {cityId: 6, districtId: 557},
accountId: '2f04f1b5-1c0a-4c4e-b0a7-0ba6e9b7f2e1'
})
};
fetch('https://api.iklim.co/v1/alarms/forecasts/page', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.iklim.co/v1/alarms/forecasts/page",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'pageNumber' => 0,
'pageSize' => 20,
'filterByRecipientIds' => [
'customer-system-001',
'customer-system-002'
],
'filterByBoundary' => [
'cityId' => 6,
'districtId' => 557
],
'accountId' => '2f04f1b5-1c0a-4c4e-b0a7-0ba6e9b7f2e1'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.iklim.co/v1/alarms/forecasts/page"
payload := strings.NewReader("{\n \"pageNumber\": 0,\n \"pageSize\": 20,\n \"filterByRecipientIds\": [\n \"customer-system-001\",\n \"customer-system-002\"\n ],\n \"filterByBoundary\": {\n \"cityId\": 6,\n \"districtId\": 557\n },\n \"accountId\": \"2f04f1b5-1c0a-4c4e-b0a7-0ba6e9b7f2e1\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.iklim.co/v1/alarms/forecasts/page")
.header("Content-Type", "application/json")
.body("{\n \"pageNumber\": 0,\n \"pageSize\": 20,\n \"filterByRecipientIds\": [\n \"customer-system-001\",\n \"customer-system-002\"\n ],\n \"filterByBoundary\": {\n \"cityId\": 6,\n \"districtId\": 557\n },\n \"accountId\": \"2f04f1b5-1c0a-4c4e-b0a7-0ba6e9b7f2e1\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.iklim.co/v1/alarms/forecasts/page")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"pageNumber\": 0,\n \"pageSize\": 20,\n \"filterByRecipientIds\": [\n \"customer-system-001\",\n \"customer-system-002\"\n ],\n \"filterByBoundary\": {\n \"cityId\": 6,\n \"districtId\": 557\n },\n \"accountId\": \"2f04f1b5-1c0a-4c4e-b0a7-0ba6e9b7f2e1\"\n}"
response = http.request(request)
puts response.read_body{
"registrations": [
{
"registrationId": "f7587d9e-2481-4b4c-818d-c8d1946851b7",
"recipientId": "customer-system-001",
"boundary": {
"cityId": 6,
"districtId": 557
},
"forecastDays": 3,
"forecastAlarmDelivery": [
"MORNING",
"EVENING"
],
"webhook": {
"accountId": "2f04f1b5-1c0a-4c4e-b0a7-0ba6e9b7f2e1",
"url": "https://api.customer.com/alerts/forecast-callback",
"httpMethod": "POST",
"contentType": "application/json",
"authentication": {
"username": "alert-user",
"password": "******"
},
"requestHeaders": {
"source": "iklim.co",
"custom-header": "value"
},
"deliveryPolicy": {
"timeout": 60,
"maxRetries": 3,
"retryDelay": 10
}
},
"filter": {
"precipitationThreshold": "MODERATE",
"snowFallThreshold": "LIGHT",
"windGustThreshold": "STRONG_WIND",
"hotTemperatureThreshold": "HOT_SNAP",
"coldTemperatureThreshold": "COLD_SNAP"
}
}
],
"totalRecords": 42,
"pageNumber": 0,
"pageSize": 20
}{
"timestamp": "YYYY-mm-DDTHH:MM:SS.nnnnnnnnn",
"status": "XXX",
"error": "Error Name",
"message": "Error Message",
"path": "/endpoint/uri/here",
"messages": [
"<string>"
]
}{
"timestamp": "YYYY-mm-DDTHH:MM:SS.nnnnnnnnn",
"status": "XXX",
"error": "Error Name",
"message": "Error Message",
"path": "/endpoint/uri/here",
"messages": [
"<string>"
]
}{
"timestamp": "YYYY-mm-DDTHH:MM:SS.nnnnnnnnn",
"status": "XXX",
"error": "Error Name",
"message": "Error Message",
"path": "/endpoint/uri/here",
"messages": [
"<string>"
]
}{
"timestamp": "YYYY-mm-DDTHH:MM:SS.nnnnnnnnn",
"status": "XXX",
"error": "Error Name",
"message": "Error Message",
"path": "/endpoint/uri/here",
"messages": [
"<string>"
]
}List registrations (paged)
Returns forecast alarm registrations with pagination and filters.
curl --request POST \
--url https://api.iklim.co/v1/alarms/forecasts/page \
--header 'Content-Type: application/json' \
--data '
{
"pageNumber": 0,
"pageSize": 20,
"filterByRecipientIds": [
"customer-system-001",
"customer-system-002"
],
"filterByBoundary": {
"cityId": 6,
"districtId": 557
},
"accountId": "2f04f1b5-1c0a-4c4e-b0a7-0ba6e9b7f2e1"
}
'import requests
url = "https://api.iklim.co/v1/alarms/forecasts/page"
payload = {
"pageNumber": 0,
"pageSize": 20,
"filterByRecipientIds": ["customer-system-001", "customer-system-002"],
"filterByBoundary": {
"cityId": 6,
"districtId": 557
},
"accountId": "2f04f1b5-1c0a-4c4e-b0a7-0ba6e9b7f2e1"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
pageNumber: 0,
pageSize: 20,
filterByRecipientIds: ['customer-system-001', 'customer-system-002'],
filterByBoundary: {cityId: 6, districtId: 557},
accountId: '2f04f1b5-1c0a-4c4e-b0a7-0ba6e9b7f2e1'
})
};
fetch('https://api.iklim.co/v1/alarms/forecasts/page', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.iklim.co/v1/alarms/forecasts/page",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'pageNumber' => 0,
'pageSize' => 20,
'filterByRecipientIds' => [
'customer-system-001',
'customer-system-002'
],
'filterByBoundary' => [
'cityId' => 6,
'districtId' => 557
],
'accountId' => '2f04f1b5-1c0a-4c4e-b0a7-0ba6e9b7f2e1'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.iklim.co/v1/alarms/forecasts/page"
payload := strings.NewReader("{\n \"pageNumber\": 0,\n \"pageSize\": 20,\n \"filterByRecipientIds\": [\n \"customer-system-001\",\n \"customer-system-002\"\n ],\n \"filterByBoundary\": {\n \"cityId\": 6,\n \"districtId\": 557\n },\n \"accountId\": \"2f04f1b5-1c0a-4c4e-b0a7-0ba6e9b7f2e1\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.iklim.co/v1/alarms/forecasts/page")
.header("Content-Type", "application/json")
.body("{\n \"pageNumber\": 0,\n \"pageSize\": 20,\n \"filterByRecipientIds\": [\n \"customer-system-001\",\n \"customer-system-002\"\n ],\n \"filterByBoundary\": {\n \"cityId\": 6,\n \"districtId\": 557\n },\n \"accountId\": \"2f04f1b5-1c0a-4c4e-b0a7-0ba6e9b7f2e1\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.iklim.co/v1/alarms/forecasts/page")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"pageNumber\": 0,\n \"pageSize\": 20,\n \"filterByRecipientIds\": [\n \"customer-system-001\",\n \"customer-system-002\"\n ],\n \"filterByBoundary\": {\n \"cityId\": 6,\n \"districtId\": 557\n },\n \"accountId\": \"2f04f1b5-1c0a-4c4e-b0a7-0ba6e9b7f2e1\"\n}"
response = http.request(request)
puts response.read_body{
"registrations": [
{
"registrationId": "f7587d9e-2481-4b4c-818d-c8d1946851b7",
"recipientId": "customer-system-001",
"boundary": {
"cityId": 6,
"districtId": 557
},
"forecastDays": 3,
"forecastAlarmDelivery": [
"MORNING",
"EVENING"
],
"webhook": {
"accountId": "2f04f1b5-1c0a-4c4e-b0a7-0ba6e9b7f2e1",
"url": "https://api.customer.com/alerts/forecast-callback",
"httpMethod": "POST",
"contentType": "application/json",
"authentication": {
"username": "alert-user",
"password": "******"
},
"requestHeaders": {
"source": "iklim.co",
"custom-header": "value"
},
"deliveryPolicy": {
"timeout": 60,
"maxRetries": 3,
"retryDelay": 10
}
},
"filter": {
"precipitationThreshold": "MODERATE",
"snowFallThreshold": "LIGHT",
"windGustThreshold": "STRONG_WIND",
"hotTemperatureThreshold": "HOT_SNAP",
"coldTemperatureThreshold": "COLD_SNAP"
}
}
],
"totalRecords": 42,
"pageNumber": 0,
"pageSize": 20
}{
"timestamp": "YYYY-mm-DDTHH:MM:SS.nnnnnnnnn",
"status": "XXX",
"error": "Error Name",
"message": "Error Message",
"path": "/endpoint/uri/here",
"messages": [
"<string>"
]
}{
"timestamp": "YYYY-mm-DDTHH:MM:SS.nnnnnnnnn",
"status": "XXX",
"error": "Error Name",
"message": "Error Message",
"path": "/endpoint/uri/here",
"messages": [
"<string>"
]
}{
"timestamp": "YYYY-mm-DDTHH:MM:SS.nnnnnnnnn",
"status": "XXX",
"error": "Error Name",
"message": "Error Message",
"path": "/endpoint/uri/here",
"messages": [
"<string>"
]
}{
"timestamp": "YYYY-mm-DDTHH:MM:SS.nnnnnnnnn",
"status": "XXX",
"error": "Error Name",
"message": "Error Message",
"path": "/endpoint/uri/here",
"messages": [
"<string>"
]
}Body
Paginated listing request for forecast alarm registrations.
Zero-based page index.
x >= 00
Maximum number of registrations to return per page (1–100).
1 <= x <= 10020
Restrict results to registrations with one of the given recipient identifiers.
[
"customer-system-001",
"customer-system-002"
]Alarm registration boundary
Defines the geographic scope to monitor for forecast alarm conditions. The concrete boundary type is selected via the type discriminator field; supply only the fields that belong to the chosen subtype.
- ADMINISTRATIVE – boundary identified by a city (
cityId) and a district (districtId); both fields are required. - POINT – boundary defined by a single longitude/latitude coordinate (
point). The alarm evaluates forecast data for the nearest forecast grid cell to that coordinate.
- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Target account UUID; users with ADMIN or POWER_USER role may query registrations of other accounts.
"2f04f1b5-1c0a-4c4e-b0a7-0ba6e9b7f2e1"
Response
OK
Paginated result set of forecast alarm registrations.
List of forecast alarm registrations on the current page.
Show child attributes
Show child attributes
Total number of matching registrations across all pages.
42
Zero-based index of the returned page.
0
Maximum number of registrations per page as originally requested.
20