curl --request GET \
--url https://api.tryreplicas.com/v1/environments/{environmentId}/warm-hooks \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.tryreplicas.com/v1/environments/{environmentId}/warm-hooks"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.tryreplicas.com/v1/environments/{environmentId}/warm-hooks', 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.tryreplicas.com/v1/environments/{environmentId}/warm-hooks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tryreplicas.com/v1/environments/{environmentId}/warm-hooks"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.tryreplicas.com/v1/environments/{environmentId}/warm-hooks")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tryreplicas.com/v1/environments/{environmentId}/warm-hooks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"warm_hook": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"environment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version": 123,
"content": "<string>",
"is_active": true,
"created_at": "2023-11-07T05:31:56Z"
},
"warm_pool": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"environment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"enabled": true,
"target_size": 123,
"generation": 123,
"error_count": 123,
"next_retry_at": "2023-11-07T05:31:56Z",
"last_error_at": "2023-11-07T05:31:56Z",
"last_error_message": "<string>",
"has_base_snapshot": true,
"updated_at": "2023-11-07T05:31:56Z",
"ready_count": 123,
"stale_count": 123,
"warming_count": 123,
"snapshotting_count": 123,
"last_failure_at": "2023-11-07T05:31:56Z",
"last_failure_reason": "<string>"
},
"snapshots": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"warm_pool_config_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"generation": 123,
"is_current": true,
"is_fallback": true,
"created_at": "2023-11-07T05:31:56Z"
}
]
}{
"error": "<string>",
"details": "<string>"
}{
"error": "<string>",
"details": "<string>"
}{
"error": "<string>",
"details": "<string>"
}Get Warm Hooks State
Returns the environment’s own active warm hook (if any), warm pool config and current counts (if any), and up to 20 retained snapshots ordered newest first. For a source-backed personal environment, fetch its source_environment_id separately to read the inherited source hook and pool snapshot history.
curl --request GET \
--url https://api.tryreplicas.com/v1/environments/{environmentId}/warm-hooks \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.tryreplicas.com/v1/environments/{environmentId}/warm-hooks"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.tryreplicas.com/v1/environments/{environmentId}/warm-hooks', 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.tryreplicas.com/v1/environments/{environmentId}/warm-hooks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tryreplicas.com/v1/environments/{environmentId}/warm-hooks"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.tryreplicas.com/v1/environments/{environmentId}/warm-hooks")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tryreplicas.com/v1/environments/{environmentId}/warm-hooks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"warm_hook": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"environment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version": 123,
"content": "<string>",
"is_active": true,
"created_at": "2023-11-07T05:31:56Z"
},
"warm_pool": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"environment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"enabled": true,
"target_size": 123,
"generation": 123,
"error_count": 123,
"next_retry_at": "2023-11-07T05:31:56Z",
"last_error_at": "2023-11-07T05:31:56Z",
"last_error_message": "<string>",
"has_base_snapshot": true,
"updated_at": "2023-11-07T05:31:56Z",
"ready_count": 123,
"stale_count": 123,
"warming_count": 123,
"snapshotting_count": 123,
"last_failure_at": "2023-11-07T05:31:56Z",
"last_failure_reason": "<string>"
},
"snapshots": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"warm_pool_config_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"generation": 123,
"is_current": true,
"is_fallback": true,
"created_at": "2023-11-07T05:31:56Z"
}
]
}{
"error": "<string>",
"details": "<string>"
}{
"error": "<string>",
"details": "<string>"
}{
"error": "<string>",
"details": "<string>"
}Authorizations
API key authentication. Obtain your API key from the Replicas dashboard under Organization → Settings → API Keys. User-session JWTs are not accepted by /v1/replica endpoints.
Path Parameters
Environment UUID, or the literal string global.
Response
Successful response
The active warm hook for the environment (null if none has ever been saved).
Show child attributes
Show child attributes
The warm pool config and current counts (null if no pool has been configured).
Show child attributes
Show child attributes
Up to 20 retained snapshots ordered newest first.
Show child attributes
Show child attributes