curl --request GET \
--url https://api.reasonmachines.ai/v3/organizations/{orgId}/provider-credentials/{providerId}/accounts/{accountKey}/usage \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.reasonmachines.ai/v3/organizations/{orgId}/provider-credentials/{providerId}/accounts/{accountKey}/usage"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.reasonmachines.ai/v3/organizations/{orgId}/provider-credentials/{providerId}/accounts/{accountKey}/usage', 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.reasonmachines.ai/v3/organizations/{orgId}/provider-credentials/{providerId}/accounts/{accountKey}/usage",
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.reasonmachines.ai/v3/organizations/{orgId}/provider-credentials/{providerId}/accounts/{accountKey}/usage"
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.reasonmachines.ai/v3/organizations/{orgId}/provider-credentials/{providerId}/accounts/{accountKey}/usage")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.reasonmachines.ai/v3/organizations/{orgId}/provider-credentials/{providerId}/accounts/{accountKey}/usage")
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{
"status": "available",
"windows": [
{
"label": "<string>",
"remaining_percent": 50,
"resets_at": "2023-11-07T05:31:56Z",
"remaining_text": "<string>"
}
],
"observed_at": "2023-11-07T05:31:56Z"
}{
"error": "prompt_required"
}{
"error": "unauthorized"
}{
"error": "missing_scope",
"required_scope": "sessions:read"
}Read saved provider account usage
Requires org:read. Reads provider-reported metadata for the exact saved account, without inference. Unavailable or exhausted usage does not establish credential validity or model access. Secret values and raw provider payloads are never returned.
Scope:org:readcurl --request GET \
--url https://api.reasonmachines.ai/v3/organizations/{orgId}/provider-credentials/{providerId}/accounts/{accountKey}/usage \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.reasonmachines.ai/v3/organizations/{orgId}/provider-credentials/{providerId}/accounts/{accountKey}/usage"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.reasonmachines.ai/v3/organizations/{orgId}/provider-credentials/{providerId}/accounts/{accountKey}/usage', 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.reasonmachines.ai/v3/organizations/{orgId}/provider-credentials/{providerId}/accounts/{accountKey}/usage",
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.reasonmachines.ai/v3/organizations/{orgId}/provider-credentials/{providerId}/accounts/{accountKey}/usage"
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.reasonmachines.ai/v3/organizations/{orgId}/provider-credentials/{providerId}/accounts/{accountKey}/usage")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.reasonmachines.ai/v3/organizations/{orgId}/provider-credentials/{providerId}/accounts/{accountKey}/usage")
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{
"status": "available",
"windows": [
{
"label": "<string>",
"remaining_percent": 50,
"resets_at": "2023-11-07T05:31:56Z",
"remaining_text": "<string>"
}
],
"observed_at": "2023-11-07T05:31:56Z"
}{
"error": "prompt_required"
}{
"error": "unauthorized"
}{
"error": "missing_scope",
"required_scope": "sessions:read"
}Authorizations
Your Reason API key from Settings > API. New keys use reason_; legacy ara_ keys remain accepted. Keys are capability-scoped: run, mcp:read, mcp:write, secrets:read, secrets:write, sessions:read, sessions:debug, knowledge:read, memory:read, memory:write, skills:read, skills:write, repos:read, repos:write, reviews:read, reviews:write, deployment:read, analytics:read, org:read, org:write, attachments:read, attachments:write, guardrails:read, guardrails:write, automations:read, automations:write, agent_auth:read. mcp:write manages MCP server configuration only; it does not authorize remote MCP-tool execution. sessions:debug is privileged: it expands diagnostic session events only for organization owners/admins.
Path Parameters
Organization id or slug. Resolve it with GET /v3/self.
The provider identifier (e.g. openai, anthropic, google, deepseek).
The exact saved provider account slot identifier. URL-encode this path segment.
1 - 512
