List Subscriptions
Intent
Reads the available subscriptions as a pageable collection without changing them.
When to call it
Call this when an interface, sync, or support workflow needs to inspect subscriptions. Use the filters and paging controls shown below to limit the result.
Access boundary
Authorize the request with a token that carries customer_portal:read or customer_portal:write.
Successful result
A successful request returns 200. The response schema below defines the body your integration receives.
Operational notes
List subscriptions of the authenticated customer.
Scopes: customer_portal:read customer_portal:write
curl --request GET \
--url https://api.getruba.com/v1/customer-portal/subscriptions/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.getruba.com/v1/customer-portal/subscriptions/"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.getruba.com/v1/customer-portal/subscriptions/', 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.getruba.com/v1/customer-portal/subscriptions/",
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.getruba.com/v1/customer-portal/subscriptions/"
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.getruba.com/v1/customer-portal/subscriptions/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getruba.com/v1/customer-portal/subscriptions/")
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{
"items": [
{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"amount": 10000,
"currency": "usd",
"recurring_interval": "month",
"recurring_interval_count": 123,
"status": "active",
"current_period_start": "2023-11-07T05:31:56Z",
"current_period_end": "2023-11-07T05:31:56Z",
"trial_start": "2023-11-07T05:31:56Z",
"trial_end": "2023-11-07T05:31:56Z",
"cancel_at_period_end": true,
"canceled_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"ends_at": "2023-11-07T05:31:56Z",
"ended_at": "2023-11-07T05:31:56Z",
"customer_id": "<string>",
"product_id": "<string>",
"discount_id": "<string>",
"checkout_id": "<string>",
"customer_cancellation_reason": "customer_service",
"customer_cancellation_comment": "<string>",
"product": {
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"trial_interval": "day",
"trial_interval_count": 123,
"name": "<string>",
"description": "<string>",
"visibility": "draft",
"recurring_interval": "day",
"recurring_interval_count": 123,
"is_recurring": true,
"is_archived": true,
"organization_id": "<string>",
"prices": [
{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"source": "catalog",
"amount_type": "fixed",
"price_currency": "<string>",
"tax_behavior": "location",
"is_archived": true,
"product_id": "<string>",
"type": "recurring",
"recurring_interval": "day",
"price_amount": 123,
"legacy": true
}
],
"benefits": [
{
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"type": "custom",
"description": "<string>",
"selectable": true,
"deletable": true,
"is_deleted": true,
"organization_id": "<string>"
}
],
"medias": [
{
"id": "<string>",
"organization_id": "<string>",
"name": "<string>",
"path": "<string>",
"mime_type": "<string>",
"size": 123,
"storage_version": "<string>",
"checksum_etag": "<string>",
"checksum_sha256_base64": "<string>",
"checksum_sha256_hex": "<string>",
"last_modified_at": "2023-11-07T05:31:56Z",
"version": "<string>",
"service": "product_media",
"is_uploaded": true,
"created_at": "2023-11-07T05:31:56Z",
"size_readable": "<string>",
"public_url": "<string>"
}
],
"organization": {
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"name": "<string>",
"slug": "<string>",
"avatar_url": "<string>",
"proration_behavior": "invoice",
"allow_customer_updates": true,
"customer_portal_settings": {
"usage": {
"show": true
},
"subscription": {
"update_seats": true,
"update_plan": true
},
"customer": {
"allow_email_change": true
}
},
"organization_features": {
"member_model_enabled": false,
"checkout_localization_enabled": false
}
}
},
"prices": [
{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"source": "catalog",
"amount_type": "fixed",
"price_currency": "<string>",
"tax_behavior": "location",
"is_archived": true,
"product_id": "<string>",
"type": "recurring",
"recurring_interval": "day",
"price_amount": 123,
"legacy": true
}
],
"meters": [
{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"consumed_units": 25,
"credited_units": 100,
"amount": 0,
"meter_id": "d498a884-e2cd-4d3e-8002-f536468a8b22",
"meter": {
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"name": "<string>"
}
}
],
"pending_update": {
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"applies_at": "2023-11-07T05:31:56Z",
"product_id": "<string>",
"seats": 123
},
"past_due_at": "2023-11-07T05:31:56Z",
"seats": 123
}
],
"pagination": {
"total_count": 123,
"max_page": 123
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Customer session tokens are specific tokens that are used to authenticate customers on your organization. You can create those sessions programmatically using the Create Customer Session endpoint.
Query Parameters
Filter by product ID. The product ID.
Filter by active or cancelled subscription.
Search by product or organization name.
Page number, defaults to 1.
Size of a page, defaults to 10. Maximum is 100.
Sorting criterion. Several criteria can be used simultaneously and will be applied in order. Add a minus sign - before the criteria name to sort by descending order.
started_at, -started_at, amount, -amount, status, -status, organization, -organization, product, -product curl --request GET \
--url https://api.getruba.com/v1/customer-portal/subscriptions/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.getruba.com/v1/customer-portal/subscriptions/"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.getruba.com/v1/customer-portal/subscriptions/', 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.getruba.com/v1/customer-portal/subscriptions/",
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.getruba.com/v1/customer-portal/subscriptions/"
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.getruba.com/v1/customer-portal/subscriptions/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getruba.com/v1/customer-portal/subscriptions/")
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{
"items": [
{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"amount": 10000,
"currency": "usd",
"recurring_interval": "month",
"recurring_interval_count": 123,
"status": "active",
"current_period_start": "2023-11-07T05:31:56Z",
"current_period_end": "2023-11-07T05:31:56Z",
"trial_start": "2023-11-07T05:31:56Z",
"trial_end": "2023-11-07T05:31:56Z",
"cancel_at_period_end": true,
"canceled_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"ends_at": "2023-11-07T05:31:56Z",
"ended_at": "2023-11-07T05:31:56Z",
"customer_id": "<string>",
"product_id": "<string>",
"discount_id": "<string>",
"checkout_id": "<string>",
"customer_cancellation_reason": "customer_service",
"customer_cancellation_comment": "<string>",
"product": {
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"trial_interval": "day",
"trial_interval_count": 123,
"name": "<string>",
"description": "<string>",
"visibility": "draft",
"recurring_interval": "day",
"recurring_interval_count": 123,
"is_recurring": true,
"is_archived": true,
"organization_id": "<string>",
"prices": [
{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"source": "catalog",
"amount_type": "fixed",
"price_currency": "<string>",
"tax_behavior": "location",
"is_archived": true,
"product_id": "<string>",
"type": "recurring",
"recurring_interval": "day",
"price_amount": 123,
"legacy": true
}
],
"benefits": [
{
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"type": "custom",
"description": "<string>",
"selectable": true,
"deletable": true,
"is_deleted": true,
"organization_id": "<string>"
}
],
"medias": [
{
"id": "<string>",
"organization_id": "<string>",
"name": "<string>",
"path": "<string>",
"mime_type": "<string>",
"size": 123,
"storage_version": "<string>",
"checksum_etag": "<string>",
"checksum_sha256_base64": "<string>",
"checksum_sha256_hex": "<string>",
"last_modified_at": "2023-11-07T05:31:56Z",
"version": "<string>",
"service": "product_media",
"is_uploaded": true,
"created_at": "2023-11-07T05:31:56Z",
"size_readable": "<string>",
"public_url": "<string>"
}
],
"organization": {
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"name": "<string>",
"slug": "<string>",
"avatar_url": "<string>",
"proration_behavior": "invoice",
"allow_customer_updates": true,
"customer_portal_settings": {
"usage": {
"show": true
},
"subscription": {
"update_seats": true,
"update_plan": true
},
"customer": {
"allow_email_change": true
}
},
"organization_features": {
"member_model_enabled": false,
"checkout_localization_enabled": false
}
}
},
"prices": [
{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"source": "catalog",
"amount_type": "fixed",
"price_currency": "<string>",
"tax_behavior": "location",
"is_archived": true,
"product_id": "<string>",
"type": "recurring",
"recurring_interval": "day",
"price_amount": 123,
"legacy": true
}
],
"meters": [
{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"consumed_units": 25,
"credited_units": 100,
"amount": 0,
"meter_id": "d498a884-e2cd-4d3e-8002-f536468a8b22",
"meter": {
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"name": "<string>"
}
}
],
"pending_update": {
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"applies_at": "2023-11-07T05:31:56Z",
"product_id": "<string>",
"seats": 123
},
"past_due_at": "2023-11-07T05:31:56Z",
"seats": 123
}
],
"pagination": {
"total_count": 123,
"max_page": 123
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}