curl --request GET \
--url {schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability \
--header 'Authorization: Bearer <token>'import requests
url = "{schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('{schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability', 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 => "{schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability",
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 := "{schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability"
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("{schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("{schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"message": "bonjour, monde!",
"project_id": "abc123def456",
"branch_machine_name": "main",
"environment_id": "main",
"environment_type": "production",
"vendor": "upsun",
"psh_user_identifier": "user@example.com",
"_links": {
"_self": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability"
},
"resources_by_service": {
"app": {
"name": "app",
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/resources/service/app"
},
"database": {
"name": "database",
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/resources/service/database"
}
},
"resources_overview": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/resources/overview"
},
"resources_summary": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/resources/summary"
},
"blackfire_php_server_caches": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/server/caches"
},
"blackfire_server_global": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/server"
},
"blackfire_server_transactions_breakdown": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/server/transactions-break-down"
},
"logs_query": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/logs/query"
},
"logs_overview": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/logs/overview"
},
"http_metrics_timeline_urls": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/http/breakdown/urls"
},
"http_metrics_timeline_ips": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/http/breakdown/ips"
},
"http_metrics_timeline_user_agents": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/http/breakdown/user-agents"
},
"console_sandbox_access": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/console/sandbox-access"
},
"conprof_applications": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/continuous-profiling"
},
"conprof_application_filters": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/continuous-profiling/app/myapp/filter"
},
"conprof_timeline": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/continuous-profiling/app/myapp"
},
"conprof_flamegraph": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/continuous-profiling/app/myapp/merge"
}
},
"retention": {
"resources": 43200,
"logs": 43200,
"http_traffic": 43200,
"continuous_profiling": 80640
},
"data_retention": {
"_unit": "minute",
"_unit_in_seconds": 60,
"resources": {
"retention_period": 43200,
"max_range": 43200,
"recommended_default_range": 43200
},
"server_monitoring": {
"retention_period": 80640,
"max_range": 20160,
"recommended_default_range": 1440
},
"logs": {
"retention_period": 43200,
"max_range": 43200,
"recommended_default_range": 43200
},
"http_traffic": {
"retention_period": 43200,
"max_range": 43200,
"recommended_default_range": 43200
},
"continuous_profiling": {
"retention_period": 43200,
"max_range": 43200,
"recommended_default_range": 43200
}
}
}Get observability entrypoint
Returns API entrypoint with hypermedia links to all observability endpoints (resources, logs, HTTP traffic, continuous profiling, server metrics) following HATEOAS principles. Includes data retention policies per metric type (retention_period, max_range, recommended_default_range in minutes), environment metadata (project_id, environment_id, environment_type, vendor), and per-service resource links. Use _links for API navigation.
curl --request GET \
--url {schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability \
--header 'Authorization: Bearer <token>'import requests
url = "{schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('{schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability', 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 => "{schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability",
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 := "{schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability"
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("{schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("{schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"message": "bonjour, monde!",
"project_id": "abc123def456",
"branch_machine_name": "main",
"environment_id": "main",
"environment_type": "production",
"vendor": "upsun",
"psh_user_identifier": "user@example.com",
"_links": {
"_self": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability"
},
"resources_by_service": {
"app": {
"name": "app",
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/resources/service/app"
},
"database": {
"name": "database",
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/resources/service/database"
}
},
"resources_overview": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/resources/overview"
},
"resources_summary": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/resources/summary"
},
"blackfire_php_server_caches": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/server/caches"
},
"blackfire_server_global": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/server"
},
"blackfire_server_transactions_breakdown": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/server/transactions-break-down"
},
"logs_query": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/logs/query"
},
"logs_overview": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/logs/overview"
},
"http_metrics_timeline_urls": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/http/breakdown/urls"
},
"http_metrics_timeline_ips": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/http/breakdown/ips"
},
"http_metrics_timeline_user_agents": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/http/breakdown/user-agents"
},
"console_sandbox_access": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/observability/console/sandbox-access"
},
"conprof_applications": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/continuous-profiling"
},
"conprof_application_filters": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/continuous-profiling/app/myapp/filter"
},
"conprof_timeline": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/continuous-profiling/app/myapp"
},
"conprof_flamegraph": {
"href": "https://api.upsun.com/projects/abc123def456/environments/main/continuous-profiling/app/myapp/merge"
}
},
"retention": {
"resources": 43200,
"logs": 43200,
"http_traffic": 43200,
"continuous_profiling": 80640
},
"data_retention": {
"_unit": "minute",
"_unit_in_seconds": 60,
"resources": {
"retention_period": 43200,
"max_range": 43200,
"recommended_default_range": 43200
},
"server_monitoring": {
"retention_period": 80640,
"max_range": 20160,
"recommended_default_range": 1440
},
"logs": {
"retention_period": 43200,
"max_range": 43200,
"recommended_default_range": 43200
},
"http_traffic": {
"retention_period": 43200,
"max_range": 43200,
"recommended_default_range": 43200
},
"continuous_profiling": {
"retention_period": 43200,
"max_range": 43200,
"recommended_default_range": 43200
}
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The unique identifier of the Upsun project
[a-z0-9]+"abc123def456"
The environment identifier
.+"main"
Response
Observability entrypoint retrieved successfully
Welcome message
"bonjour, monde!"
Project identifier
"abc123def456"
Branch machine name
"main"
Environment identifier
"main"
Environment type classification
production, staging, development "production"
Platform vendor identifier
upsun, platformsh "upsun"
Authenticated user identifier
"user@example.com"
HATEOAS navigation links to all observability endpoints
Show child attributes
Show child attributes
DEPRECATED: Data retention periods in minutes per resource type. Use data_retention instead.
Show child attributes
Show child attributes
Data retention policies per metric type with periods in minutes
Show child attributes
Show child attributes
Was this page helpful?