Top Up Media Credits
curl --request GET \
--url https://public.reap.video/api/v1/automation/top-up-media-credits \
--header 'Authorization: Bearer <token>'import requests
url = "https://public.reap.video/api/v1/automation/top-up-media-credits"
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/top-up-media-credits', 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/top-up-media-credits",
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/top-up-media-credits"
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/top-up-media-credits")
.header("Authorization", "Bearer <token>")
.asString();{
"url": "<string>"
}Billing & Usage
Top Up Media Credits
Get a Stripe checkout link to buy extra media credits as a one-time purchase
GET
/
automation
/
top-up-media-credits
Top Up Media Credits
curl --request GET \
--url https://public.reap.video/api/v1/automation/top-up-media-credits \
--header 'Authorization: Bearer <token>'import requests
url = "https://public.reap.video/api/v1/automation/top-up-media-credits"
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/top-up-media-credits', 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/top-up-media-credits",
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/top-up-media-credits"
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/top-up-media-credits")
.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 Checkout link for a one-time media-credit top-up. This endpoint only returns a URL — nothing is charged until the user opens the link and completes payment in the browser. Top-ups work like this:- Credits are sold in packs of 100 media credits
- The purchase is one-time — it doesn’t change your subscription or renewal date
- Top-up credits never expire; monthly plan credits are always spent first
- Media credits only (clipping, captions, reframing, transcription, audiograms, editor processing) — AI credits can’t be topped up
Any valid API key on an active paid plan can call this endpoint — including member keys. (In the web app the top-up button is admin-only; the API is deliberately lower-friction.)
Query Parameters
integer
default:"1"
Number of 100-credit packs to preload in the checkout. Must be ≥ 1. The user can still adjust the quantity on the checkout page (up to 1,000 packs).
string
Optional promo code to apply at checkout. Invalid or expired codes return a
400. When omitted, any default top-up discount is applied automatically.Response
string
Stripe Checkout URL. Open it in a browser to review the purchase and pay. Credits are added to the account within a few seconds of payment.
Example Request
curl -X GET "https://public.reap.video/api/v1/automation/top-up-media-credits?quantity=3" \
-H "Authorization: Bearer YOUR_API_KEY"
const response = await fetch(
'https://public.reap.video/api/v1/automation/top-up-media-credits?quantity=3',
{ headers: { 'Authorization': 'Bearer YOUR_API_KEY' } }
);
const { url } = await response.json();
console.log('Complete the purchase at:', url);
import requests
response = requests.get(
'https://public.reap.video/api/v1/automation/top-up-media-credits',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
params={'quantity': 3}
)
print('Complete the purchase at:', response.json()['url'])
Example Response
Rate Limiting
This endpoint allows 30 requests per minute per API key. Each endpoint has its own budget, so this allowance is not shared with the rest of the API — see Rate limiting.Next Steps
- Check your balance first with Get Plan Usage
- How top-ups behave (expiry, freezing, spend order): see the help-center guide
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Number of 100-credit packs to preload in the checkout (adjustable on the checkout page)
Required range:
x >= 1Optional promo code to apply at checkout. Invalid or expired codes return a 400.
Response
200 - application/json
Successful response
Stripe URL to open in a browser
Was this page helpful?