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.
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": 123,
"currency": "<string>",
"recurring_interval_count": 123,
"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_comment": "<string>",
"product": {
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"trial_interval_count": 123,
"name": "<string>",
"description": "<string>",
"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>",
"amount_type": "<string>",
"price_currency": "<string>",
"is_archived": true,
"product_id": "<string>",
"type": "<string>",
"price_amount": 123,
"legacy": true
}
],
"benefits": [
{
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"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": "<string>",
"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>",
"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>",
"amount_type": "<string>",
"price_currency": "<string>",
"is_archived": true,
"product_id": "<string>",
"type": "<string>",
"price_amount": 123,
"legacy": true
}
],
"meters": [
{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"consumed_units": 123,
"credited_units": 123,
"amount": 123,
"meter_id": "<string>",
"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
Authentication: Customer session tokens authenticate buyers within your organization. Generate one through the customer session operation.
Query Parameters
Return only records matching product ID. Identifier of the product.
Return only records matching active or cancelled subscription.
Parameter: Search by product or organization name.
Results page to return. The first page is used by default.
Records returned per page. Defaults to 10 and accepts up to 100.
Sort rules applied from left to right. Prefix any rule with - to reverse it into 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": 123,
"currency": "<string>",
"recurring_interval_count": 123,
"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_comment": "<string>",
"product": {
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"trial_interval_count": 123,
"name": "<string>",
"description": "<string>",
"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>",
"amount_type": "<string>",
"price_currency": "<string>",
"is_archived": true,
"product_id": "<string>",
"type": "<string>",
"price_amount": 123,
"legacy": true
}
],
"benefits": [
{
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"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": "<string>",
"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>",
"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>",
"amount_type": "<string>",
"price_currency": "<string>",
"is_archived": true,
"product_id": "<string>",
"type": "<string>",
"price_amount": 123,
"legacy": true
}
],
"meters": [
{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"consumed_units": 123,
"credited_units": 123,
"amount": 123,
"meter_id": "<string>",
"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": {}
}
]
}