+
Monthly: {monthlyBalance?.balance ?? 0} remaining
+
Prepaid: {prepaidBalance?.balance ?? 0} remaining
+
Total: {messages?.balance ?? 0} messages available
+
+);
+```
+
+```typescript Node.js [expandable]
+import { Autumn } from "autumn-js";
+
+const autumn = new Autumn({
+ secretKey: 'am_sk_42424242',
+});
+
+const { data } = await autumn.customer({
+ customer_id: "user_or_org_id_from_auth",
+});
+
+const messages = data?.features?.messages;
+
+// Extract monthly vs prepaid balances from the breakdown
+const monthlyBalance = messages?.breakdown?.find(
+ (b) => b.interval === "month"
+);
+const prepaidBalance = messages?.breakdown?.find(
+ (b) => b.interval === "lifetime"
+);
+
+console.log(`Monthly: ${monthlyBalance?.balance ?? 0} remaining`);
+console.log(`Prepaid: ${prepaidBalance?.balance ?? 0} remaining`);
+console.log(`Total: ${messages?.balance ?? 0} messages available`);
+```
+
+```python Python [expandable]
+import asyncio
+from autumn import Autumn
+
+autumn = Autumn("am_sk_42424242")
+
+async def main():
+ response = await autumn.customer(
+ customer_id="user_or_org_id_from_auth",
+ )
+
+ messages = response.features.get("messages", {})
+ breakdown = messages.get("breakdown", [])
+
+ # Extract monthly vs prepaid balances
+ monthly = next((b for b in breakdown if b.get("interval") == "month"), None)
+ prepaid = next((b for b in breakdown if b.get("interval") == "lifetime"), None)
+
+ print(f"Monthly: {monthly['balance'] if monthly else 0} remaining")
+ print(f"Prepaid: {prepaid['balance'] if prepaid else 0} remaining")
+ print(f"Total: {messages.get('balance', 0)} messages available")
+
+asyncio.run(main())
+```
+
+```bash cURL
+curl -X GET "https://api.useautumn.com/v1/customers/user_or_org_id_from_auth" \
+ -H "Authorization: Bearer am_sk_42424242" \
+ -H "Content-Type: application/json"
+
+ # get features usage object from customer.features.[feature_id]
+```
+
+