curl --request GET \
--url https://api.recoupable.dev/api/accounts/{id}/subscription \
--header 'x-api-key: <api-key>'import requests
url = "https://api.recoupable.dev/api/accounts/{id}/subscription"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.recoupable.dev/api/accounts/{id}/subscription', 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.recoupable.dev/api/accounts/{id}/subscription",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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.recoupable.dev/api/accounts/{id}/subscription"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.recoupable.dev/api/accounts/{id}/subscription")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.recoupable.dev/api/accounts/{id}/subscription")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"isPro": true,
"status": "active",
"plan": "pro",
"source": "account",
"name": "Pro",
"amountCents": 9900,
"currency": "usd",
"interval": "month",
"collectionMethod": "charge_automatically",
"currentPeriodEnd": "2026-10-04T00:00:00Z"
}{
"error": "Unauthorized"
}{
"error": "Account not found"
}{
"error": "Account not found"
}Get Account Subscription
Retrieve the subscription that confers an account’s plan, directly or via an organization: isPro, status, plan, source, plus the billing fields name, amountCents, currency, interval, collectionMethod and currentPeriodEnd. Everything but isPro and status is null when status is none. id may be the authenticated account or an organization the caller belongs to.
curl --request GET \
--url https://api.recoupable.dev/api/accounts/{id}/subscription \
--header 'x-api-key: <api-key>'import requests
url = "https://api.recoupable.dev/api/accounts/{id}/subscription"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.recoupable.dev/api/accounts/{id}/subscription', 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.recoupable.dev/api/accounts/{id}/subscription",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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.recoupable.dev/api/accounts/{id}/subscription"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.recoupable.dev/api/accounts/{id}/subscription")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.recoupable.dev/api/accounts/{id}/subscription")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"isPro": true,
"status": "active",
"plan": "pro",
"source": "account",
"name": "Pro",
"amountCents": 9900,
"currency": "usd",
"interval": "month",
"collectionMethod": "charge_automatically",
"currentPeriodEnd": "2026-10-04T00:00:00Z"
}{
"error": "Unauthorized"
}{
"error": "Account not found"
}{
"error": "Account not found"
}Authorizations
Your Recoup API key. Learn more.
Path Parameters
The unique identifier (UUID) of the account. Must be the authenticated account or another accessible via organization membership.
Response
Subscription retrieved successfully
Subscription that confers the account's plan, directly or via an organization. plan, source, and the six billing fields (name, amountCents, currency, interval, collectionMethod, currentPeriodEnd) are all null when status is none.
True when the account has an active paid subscription, directly or via an organization.
Lifecycle state of the subscription. none when no subscription exists.
active, trialing, canceled, past_due, none "active"
Plan identifier (e.g. pro). Null when no subscription exists.
"pro"
Origin of the subscription. account for direct, organization when covered by an organization. Null when no subscription exists.
account, organization "account"
Display name of the plan's Stripe price (nickname) or product. Null when no subscription exists.
"Pro"
Recurring amount in the smallest currency unit (cents for USD). Null when no subscription exists.
9900
ISO 4217 currency code, lowercase.
"usd"
Billing interval of the recurring price.
day, week, month, year "month"
charge_automatically bills the card on file at renewal; send_invoice emails an invoice that is paid manually (enterprise plans). A saved card is never charged for a send_invoice plan.
charge_automatically, send_invoice "charge_automatically"
End of the current billing period: the renewal date, or the next invoice date for invoiced plans.
"2026-10-04T00:00:00Z"
Was this page helpful?
