Memory p90 per day and release
curl --request GET \
--url https://api.apsio.io/v1/projects/{projectId}/resources/memory/daily \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.apsio.io/v1/projects/{projectId}/resources/memory/daily"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.apsio.io/v1/projects/{projectId}/resources/memory/daily', 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.apsio.io/v1/projects/{projectId}/resources/memory/daily",
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.apsio.io/v1/projects/{projectId}/resources/memory/daily"
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.apsio.io/v1/projects/{projectId}/resources/memory/daily")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.apsio.io/v1/projects/{projectId}/resources/memory/daily")
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{
"days": [
"2026-10-04"
],
"releases": [
{
"release": "<string>",
"loads": 123,
"p90": [
123
]
}
],
"retention": {
"crash_days": 123,
"detail_days": 123
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"subject": "organization"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"subject": "organization"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"subject": "organization"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"subject": "organization"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"subject": "organization"
}
}API reference
Memory p90 per day and release
The p90 of the screen views’ memory footprint per UTC day, for each release, on one screen or all of them. Every day of the range is listed; a release has null where it had no views.
GET
/
projects
/
{projectId}
/
resources
/
memory
/
daily
Memory p90 per day and release
curl --request GET \
--url https://api.apsio.io/v1/projects/{projectId}/resources/memory/daily \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.apsio.io/v1/projects/{projectId}/resources/memory/daily"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.apsio.io/v1/projects/{projectId}/resources/memory/daily', 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.apsio.io/v1/projects/{projectId}/resources/memory/daily",
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.apsio.io/v1/projects/{projectId}/resources/memory/daily"
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.apsio.io/v1/projects/{projectId}/resources/memory/daily")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.apsio.io/v1/projects/{projectId}/resources/memory/daily")
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{
"days": [
"2026-10-04"
],
"releases": [
{
"release": "<string>",
"loads": 123,
"p90": [
123
]
}
],
"retention": {
"crash_days": 123,
"detail_days": 123
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"subject": "organization"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"subject": "organization"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"subject": "organization"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"subject": "organization"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"subject": "organization"
}
}Authorizations
bearersession
A project token (apsio_pt_v0...), which reads exactly one project, or an OAuth access token issued for the API, which reads what its user can. Access tokens issued for Apsio's MCP server are accepted only from the MCP server itself.
Path Parameters
Pattern:
^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$Example:
"0192f3a4-0000-7000-8000-00000000a101"
Query Parameters
Start of the time range, inclusive (RFC 3339). Defaults to the range end minus the default length.
Example:
"2026-10-01T00:00:00Z"
End of the time range, exclusive (RFC 3339). Defaults to now.
Example:
"2026-10-08T00:00:00Z"
Only this app.
Pattern:
^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$Only this screen.
Maximum string length:
256