curl --request GET \
--url https://dripstack.com/api/v1/me/credits \
--header 'Authorization: Bearer <token>'import requests
url = "https://dripstack.com/api/v1/me/credits"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://dripstack.com/api/v1/me/credits', 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://dripstack.com/api/v1/me/credits",
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://dripstack.com/api/v1/me/credits"
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://dripstack.com/api/v1/me/credits")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://dripstack.com/api/v1/me/credits")
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{
"purchasedBalanceUsd": 4.25,
"lifetimePurchasedUsd": 20,
"lifetimeSpentUsd": 15.75,
"topUpUrl": "https://dripstack.com/pricing",
"dashboardUrl": "https://dripstack.com/billing"
}{
"error": "<string>",
"code": "<string>",
"hint": "<string>",
"reason": "<string>"
}{
"error": "<string>",
"code": "<string>",
"hint": "<string>",
"reason": "<string>"
}Available credit balance and top-up URLs.
Returns spendable balance across active signup and top-up credit pools plus lifetime purchased/spent totals and topUpUrl / dashboardUrl. Expired credits are excluded. Lifetime purchased totals include purchases and promos, not signup grants. Requires bearer API key or OAuth access token with mcp:unlock. Session JWTs are rejected. There is no top-up API — send users to topUpUrl.
curl --request GET \
--url https://dripstack.com/api/v1/me/credits \
--header 'Authorization: Bearer <token>'import requests
url = "https://dripstack.com/api/v1/me/credits"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://dripstack.com/api/v1/me/credits', 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://dripstack.com/api/v1/me/credits",
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://dripstack.com/api/v1/me/credits"
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://dripstack.com/api/v1/me/credits")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://dripstack.com/api/v1/me/credits")
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{
"purchasedBalanceUsd": 4.25,
"lifetimePurchasedUsd": 20,
"lifetimeSpentUsd": 15.75,
"topUpUrl": "https://dripstack.com/pricing",
"dashboardUrl": "https://dripstack.com/billing"
}{
"error": "<string>",
"code": "<string>",
"hint": "<string>",
"reason": "<string>"
}{
"error": "<string>",
"code": "<string>",
"hint": "<string>",
"reason": "<string>"
}Authorizations
Bearer API key (pk_drip_…) or OAuth access token (mcp_at_…). Session JWTs are rejected on routes that require this scheme.
Response
Credit balance snapshot.
Current pooled credit balance in USD, including signup and purchased credits.
Lifetime USD added via purchases or promos (excludes signup grants).
Lifetime USD spent from the pooled credit balance.
URL where the user can buy more credits.
Credits dashboard URL.

