Manage Subscription
curl --request GET \
--url https://public.reap.video/api/v1/automation/manage-subscription \
--header 'Authorization: Bearer <token>'import requests
url = "https://public.reap.video/api/v1/automation/manage-subscription"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://public.reap.video/api/v1/automation/manage-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://public.reap.video/api/v1/automation/manage-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 => [
"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://public.reap.video/api/v1/automation/manage-subscription"
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://public.reap.video/api/v1/automation/manage-subscription")
.header("Authorization", "Bearer <token>")
.asString();{
"url": "<string>"
}Billing & Usage
Manage Subscription
Get a Stripe billing portal link to change plan, update payment details, or cancel
GET
/
automation
/
manage-subscription
Manage Subscription
curl --request GET \
--url https://public.reap.video/api/v1/automation/manage-subscription \
--header 'Authorization: Bearer <token>'import requests
url = "https://public.reap.video/api/v1/automation/manage-subscription"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://public.reap.video/api/v1/automation/manage-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://public.reap.video/api/v1/automation/manage-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 => [
"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://public.reap.video/api/v1/automation/manage-subscription"
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://public.reap.video/api/v1/automation/manage-subscription")
.header("Authorization", "Bearer <token>")
.asString();{
"url": "<string>"
}
For AI agents: a documentation index is at /llms.txt. Every page is also available as markdown, just append .md to the URL.
Overview
Get a Stripe billing-portal link for the studio’s subscription. In the portal the user can change plan, update the payment method, view invoices, or cancel. Like Top Up Media Credits, this endpoint only returns a URL — all changes happen in the browser.Admin keys only. Only API keys created by the studio admin can call this endpoint; member keys receive a
403.Plans purchased through AppSumo are managed in your AppSumo account, not Stripe. AppSumo subscriptions receive a
400 with a message pointing to appsumo.com.Response
string
Stripe billing-portal URL. Open it in a browser to manage the subscription.
Example Request
curl -X GET "https://public.reap.video/api/v1/automation/manage-subscription" \
-H "Authorization: Bearer YOUR_API_KEY"
const response = await fetch('https://public.reap.video/api/v1/automation/manage-subscription', {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
const { url } = await response.json();
console.log('Manage your subscription at:', url);
import requests
response = requests.get(
'https://public.reap.video/api/v1/automation/manage-subscription',
headers={'Authorization': 'Bearer YOUR_API_KEY'}
)
print('Manage your subscription at:', response.json()['url'])
Example Response
Rate Limiting
This endpoint is subject to the standard rate limit of 10 requests per minute.Next Steps
- Just need more media credits? Use Top Up Media Credits — it works for any API key and doesn’t change your plan
- Check current plan and usage with Get Plan Usage
Was this page helpful?