Get Current Quota
curl --request GET \
--url https://api.pictory.ai/pictoryapis/v1/quota \
--header 'Authorization: <authorization>'import requests
url = "https://api.pictory.ai/pictoryapis/v1/quota"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.pictory.ai/pictoryapis/v1/quota', 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.pictory.ai/pictoryapis/v1/quota",
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: <authorization>"
],
]);
$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.pictory.ai/pictoryapis/v1/quota"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
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.pictory.ai/pictoryapis/v1/quota")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pictory.ai/pictoryapis/v1/quota")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"videoMinutes": { "used": 98, "limit": 14400 },
"transcriptionMinutes": { "used": 0, "limit": 14400 },
"elevenLabsVoiceOverMinutes": { "used": 33, "limit": 480 },
"aiCredits": { "used": 690, "limit": 22000 }
}
{
"code": "UNAUTHORIZED",
"message": "Missing subscription identity."
}
{
"message": "Unauthorized"
}
(empty response body)
{
"code": "BAD_CONFIGURATION",
"message": "An unexpected error occurred while processing the request"
}
Account & Usage
Get Current Quota
Retrieve the current usage and limits for the four core quota types on your subscription
GET
/
pictoryapis
/
v1
/
quota
Get Current Quota
curl --request GET \
--url https://api.pictory.ai/pictoryapis/v1/quota \
--header 'Authorization: <authorization>'import requests
url = "https://api.pictory.ai/pictoryapis/v1/quota"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.pictory.ai/pictoryapis/v1/quota', 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.pictory.ai/pictoryapis/v1/quota",
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: <authorization>"
],
]);
$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.pictory.ai/pictoryapis/v1/quota"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
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.pictory.ai/pictoryapis/v1/quota")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pictory.ai/pictoryapis/v1/quota")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"videoMinutes": { "used": 98, "limit": 14400 },
"transcriptionMinutes": { "used": 0, "limit": 14400 },
"elevenLabsVoiceOverMinutes": { "used": 33, "limit": 480 },
"aiCredits": { "used": 690, "limit": 22000 }
}
{
"code": "UNAUTHORIZED",
"message": "Missing subscription identity."
}
{
"message": "Unauthorized"
}
(empty response body)
{
"code": "BAD_CONFIGURATION",
"message": "An unexpected error occurred while processing the request"
}
Overview
Retrieve a real-time snapshot of the quotas associated with your Pictory subscription. The response shows how much of each quota you have used so far in the current billing term and how much is allowed by your plan. The endpoint reports the following four metrics:- Video minutes rendered through Pictory’s video generation pipeline
- Transcription minutes consumed by transcription jobs
- ElevenLabs VoiceOver minutes used for AI text-to-speech
- AI credits consumed by generative AI features such as AI avatars, text-to-image, and AI video generation
You need a valid API key to use this endpoint. Get your API key from the API Access page in your Pictory dashboard.
API Endpoint
GET https://api.pictory.ai/pictoryapis/v1/quota
Request Parameters
Headers
string
required
API key for authentication (starts with
pictai_)Authorization: YOUR_API_KEY
Response
Returns an object containing four usage entries. Every entry has the same shape:used reports the amount consumed in the current billing term and limit reports the maximum allowed by the plan.
object
required
object
required
object
required
object
required
AI credits consumed in the current billing term. AI credits power generative features such as AI avatars, text-to-image, and AI video generation.
Response Examples
{
"videoMinutes": { "used": 98, "limit": 14400 },
"transcriptionMinutes": { "used": 0, "limit": 14400 },
"elevenLabsVoiceOverMinutes": { "used": 33, "limit": 480 },
"aiCredits": { "used": 690, "limit": 22000 }
}
{
"code": "UNAUTHORIZED",
"message": "Missing subscription identity."
}
{
"message": "Unauthorized"
}
(empty response body)
{
"code": "BAD_CONFIGURATION",
"message": "An unexpected error occurred while processing the request"
}
Code Examples
Replace
YOUR_API_KEY with your actual API key that starts with pictai_curl --request GET \
--url 'https://api.pictory.ai/pictoryapis/v1/quota' \
--header 'Authorization: YOUR_API_KEY' \
--header 'accept: application/json' | python -m json.tool
import requests
url = "https://api.pictory.ai/pictoryapis/v1/quota"
headers = {
"Authorization": "YOUR_API_KEY",
"accept": "application/json"
}
response = requests.get(url, headers=headers)
quota = response.json()
print(f"Video Minutes: {quota['videoMinutes']['used']}/{quota['videoMinutes']['limit']}")
print(f"Transcription: {quota['transcriptionMinutes']['used']}/{quota['transcriptionMinutes']['limit']}")
print(f"ElevenLabs VO: {quota['elevenLabsVoiceOverMinutes']['used']}/{quota['elevenLabsVoiceOverMinutes']['limit']}")
print(f"AI Credits: {quota['aiCredits']['used']}/{quota['aiCredits']['limit']}")
const response = await fetch(
"https://api.pictory.ai/pictoryapis/v1/quota",
{
method: "GET",
headers: {
Authorization: "YOUR_API_KEY",
accept: "application/json",
},
}
);
const quota = await response.json();
console.log(`Video Minutes: ${quota.videoMinutes.used}/${quota.videoMinutes.limit}`);
console.log(`Transcription: ${quota.transcriptionMinutes.used}/${quota.transcriptionMinutes.limit}`);
console.log(`ElevenLabs VO: ${quota.elevenLabsVoiceOverMinutes.used}/${quota.elevenLabsVoiceOverMinutes.limit}`);
console.log(`AI Credits: ${quota.aiCredits.used}/${quota.aiCredits.limit}`);
<?php
$url = 'https://api.pictory.ai/pictoryapis/v1/quota';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: YOUR_API_KEY',
'accept: application/json'
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode !== 200) {
throw new Exception('Request failed with status ' . $httpCode);
}
$quota = json_decode($response, true);
echo "Video Minutes: {$quota['videoMinutes']['used']}/{$quota['videoMinutes']['limit']}\n";
echo "Transcription: {$quota['transcriptionMinutes']['used']}/{$quota['transcriptionMinutes']['limit']}\n";
echo "ElevenLabs VO: {$quota['elevenLabsVoiceOverMinutes']['used']}/{$quota['elevenLabsVoiceOverMinutes']['limit']}\n";
echo "AI Credits: {$quota['aiCredits']['used']}/{$quota['aiCredits']['limit']}\n";
?>
package main
import (
"encoding/json"
"fmt"
"io"
"net/http"
)
type QuotaEntry struct {
Used int `json:"used"`
Limit int `json:"limit"`
}
type Quota struct {
VideoMinutes QuotaEntry `json:"videoMinutes"`
TranscriptionMinutes QuotaEntry `json:"transcriptionMinutes"`
ElevenLabsVoiceOverMinutes QuotaEntry `json:"elevenLabsVoiceOverMinutes"`
AICredits QuotaEntry `json:"aiCredits"`
}
func main() {
req, _ := http.NewRequest("GET", "https://api.pictory.ai/pictoryapis/v1/quota", nil)
req.Header.Set("Authorization", "YOUR_API_KEY")
req.Header.Set("accept", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
var quota Quota
json.Unmarshal(body, "a)
fmt.Printf("Video Minutes: %d/%d\n", quota.VideoMinutes.Used, quota.VideoMinutes.Limit)
fmt.Printf("Transcription: %d/%d\n", quota.TranscriptionMinutes.Used, quota.TranscriptionMinutes.Limit)
fmt.Printf("ElevenLabs VO: %d/%d\n", quota.ElevenLabsVoiceOverMinutes.Used, quota.ElevenLabsVoiceOverMinutes.Limit)
fmt.Printf("AI Credits: %d/%d\n", quota.AICredits.Used, quota.AICredits.Limit)
}
Was this page helpful?
