curl --request GET \
--url https://api.budgetpixel.com/v1/characters \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.budgetpixel.com/v1/characters"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.budgetpixel.com/v1/characters', 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.budgetpixel.com/v1/characters",
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.budgetpixel.com/v1/characters"
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.budgetpixel.com/v1/characters")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.budgetpixel.com/v1/characters")
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{
"characters": [
{
"age": "<string>",
"catchphrase": "Obviously.",
"creator": "<string>",
"gender": "<string>",
"handle": "barry",
"mention": "@barry",
"name": "Barry",
"page_url": "https://budgetpixel.com/characters/bfaa78ab-a3c0-4537-b979-b5c851cd6853",
"picture_tags": [
"avatar",
"full_body",
"expressions",
"selfie"
],
"preview_url": "<string>",
"source": "official",
"summary": "<string>",
"title": "Rich in his head",
"traits": [
"<string>"
],
"trend_rank": 123
}
],
"count": 123,
"how_to_use": "<string>"
}{
"error": {
"code": "model_not_available",
"message": "<string>",
"type": "invalid_request_error"
}
}{
"error": {
"code": "model_not_available",
"message": "<string>",
"type": "invalid_request_error"
}
}{
"error": {
"code": "model_not_available",
"message": "<string>",
"type": "invalid_request_error"
}
}{
"error": {
"code": "model_not_available",
"message": "<string>",
"type": "invalid_request_error"
}
}List characters you can cast
The characters you can cast with an @handle mention: the free BudgetPixel AI
influencers, your own characters, and the ones you collected from the marketplace.
Influencers come first (this week’s trending ones on top), then yours, then collected.
Casting. Write a character’s mention (@barry) in the prompt of any image or video
generation on a model that takes characters (see supported_models on
GET /v1/characters/{handle}). @barry.full_body
casts with that tagged picture. Up to 4 characters per generation; their pictures count as
reference images in the price. An influencer is never shown nude or in sexual content: such
requests are refused (suggestive outfits and poses are fine).
Free — no credits. Limited to 300 calls per day per account.
curl --request GET \
--url https://api.budgetpixel.com/v1/characters \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.budgetpixel.com/v1/characters"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.budgetpixel.com/v1/characters', 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.budgetpixel.com/v1/characters",
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.budgetpixel.com/v1/characters"
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.budgetpixel.com/v1/characters")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.budgetpixel.com/v1/characters")
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{
"characters": [
{
"age": "<string>",
"catchphrase": "Obviously.",
"creator": "<string>",
"gender": "<string>",
"handle": "barry",
"mention": "@barry",
"name": "Barry",
"page_url": "https://budgetpixel.com/characters/bfaa78ab-a3c0-4537-b979-b5c851cd6853",
"picture_tags": [
"avatar",
"full_body",
"expressions",
"selfie"
],
"preview_url": "<string>",
"source": "official",
"summary": "<string>",
"title": "Rich in his head",
"traits": [
"<string>"
],
"trend_rank": 123
}
],
"count": 123,
"how_to_use": "<string>"
}{
"error": {
"code": "model_not_available",
"message": "<string>",
"type": "invalid_request_error"
}
}{
"error": {
"code": "model_not_available",
"message": "<string>",
"type": "invalid_request_error"
}
}{
"error": {
"code": "model_not_available",
"message": "<string>",
"type": "invalid_request_error"
}
}{
"error": {
"code": "model_not_available",
"message": "<string>",
"type": "invalid_request_error"
}
}Authorizations
API key as a bearer token: Authorization: Bearer bpx_live_xxx
Query Parameters
all, official, mine, collected Words that must all appear in the character's name, look or profile (e.g. fitness).
1 <= x <= 200