List models
curl --request GET \
--url https://www.trybloom.ai/api/v1/models \
--header 'x-api-key: <api-key>'import requests
url = "https://www.trybloom.ai/api/v1/models"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://www.trybloom.ai/api/v1/models', 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://www.trybloom.ai/api/v1/models",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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://www.trybloom.ai/api/v1/models"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://www.trybloom.ai/api/v1/models")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.trybloom.ai/api/v1/models")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"models": [
{
"id": "<string>",
"name": "<string>",
"type": "image",
"description": "<string>",
"inputTypes": [
"<string>"
]
}
],
"nextCursor": "<string>",
"hasMore": true
}
}{
"error": {
"code": "INVALID_CURSOR",
"status": 400,
"message": "Invalid generation model cursor",
"data": "<unknown>"
}
}{
"error": {
"code": "UNAUTHORIZED",
"status": 401,
"message": "Invalid or missing API credentials",
"data": "<unknown>"
}
}{
"error": {
"code": "ACCOUNT_BANNED",
"status": 403,
"message": "This account has been suspended.",
"data": "<unknown>"
}
}{
"error": {
"code": "TOO_MANY_REQUESTS",
"status": 429,
"message": "Rate limit exceeded",
"data": "<unknown>"
}
}{
"error": {
"code": "CATALOG_UNAVAILABLE",
"status": 503,
"message": "Could not load generation models",
"data": "<unknown>"
}
}Models
List models
List available image, video, audio, and SVG models. Filter by output type or search query. Use the returned cursor to get the next page, keeping the same filters.
GET
/
models
List models
curl --request GET \
--url https://www.trybloom.ai/api/v1/models \
--header 'x-api-key: <api-key>'import requests
url = "https://www.trybloom.ai/api/v1/models"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://www.trybloom.ai/api/v1/models', 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://www.trybloom.ai/api/v1/models",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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://www.trybloom.ai/api/v1/models"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://www.trybloom.ai/api/v1/models")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.trybloom.ai/api/v1/models")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"models": [
{
"id": "<string>",
"name": "<string>",
"type": "image",
"description": "<string>",
"inputTypes": [
"<string>"
]
}
],
"nextCursor": "<string>",
"hasMore": true
}
}{
"error": {
"code": "INVALID_CURSOR",
"status": 400,
"message": "Invalid generation model cursor",
"data": "<unknown>"
}
}{
"error": {
"code": "UNAUTHORIZED",
"status": 401,
"message": "Invalid or missing API credentials",
"data": "<unknown>"
}
}{
"error": {
"code": "ACCOUNT_BANNED",
"status": 403,
"message": "This account has been suspended.",
"data": "<unknown>"
}
}{
"error": {
"code": "TOO_MANY_REQUESTS",
"status": 429,
"message": "Rate limit exceeded",
"data": "<unknown>"
}
}{
"error": {
"code": "CATALOG_UNAVAILABLE",
"status": 503,
"message": "Could not load generation models",
"data": "<unknown>"
}
}Authorizations
apiKeybearer
Bloom API key, for example x-api-key: bloom_sk_....
Query Parameters
Filter by the type of file the model generates.
Available options:
image, video, audio, svg Search the model catalog.
Maximum string length:
200Maximum number of models to return. Accepts 1–50; defaults to 20.
Required range:
1 <= x <= 50Cursor from the previous response's nextCursor. Keep the same type and query filters.
Response
OK
Show child attributes
Show child attributes
Was this page helpful?