curl -X GET "https://apolloai.lol/v1/models"
import requests
# For local development, use: http://localhost:3000/v1/models
url = "https://apolloai.lol/v1/models"
try:
response = requests.get(url)
response.raise_for_status()
print(response.json())
except requests.exceptions.HTTPError as err:
print(f"HTTP Error: {err}")
print(f"Response Body: {response.text}")
except Exception as err:
print(f"Error: {err}")
// For local development, use: http://localhost:3000/v1/models
const url = "https://apolloai.lol/v1/models";
fetch(url)
.then(async response => {
if (!response.ok) {
const text = await response.text();
throw new Error(`HTTP error! status: ${response.status}, body: ${text}`);
}
return response.json();
})
.then(console.log)
.catch(console.error);
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
// For local development, use: http://localhost:3000/v1/models
url := "https://apolloai.lol/v1/models"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
if resp.StatusCode >= 400 {
fmt.Printf("Error (Status %d): %s\n", resp.StatusCode, string(body))
} else {
fmt.Println(string(body))
}
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
public class Main {
public static void main(String[] args) throws Exception {
// For local development, use: http://localhost:3000/v1/models
String url = "https://apolloai.lol/v1/models";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("x-api-key", "<api_key>") // Header optional for public endpoints
.GET()
.build();
client.sendAsync(request, BodyHandlers.ofString())
.thenAccept(response -> {
if (response.statusCode() >= 400) {
System.out.println("Error (Status " + response.statusCode() + "): " + response.body());
} else {
System.out.println(response.body());
}
})
.join();
}
}
require 'uri'
require 'net/http'
url = URI("https://apolloai.lol/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
#include <stdio.h>
#include <curl/curl.h>
int main(void) {
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://apolloai.lol/v1/models");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "x-api-key: <api_key>");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
use reqwest::Client;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = Client::new();
let res = client.get("https://apolloai.lol/v1/models")
.header("x-api-key", "<api_key>")
.send()
.await?;
let body = res.text().await?;
println!("{}", body);
Ok(())
}
{
"models": [
{ "id": "gpt-oss-120b", "name": "GPT OSS 120B", "provider": "OpenAI", "category": "OpenAI", "description": "High-performance 120B parameter model.", "endpoints": ["/v1/chat/completions"], "tier": "free", "multiplier": 3 },
{ "id": "qwen3-coder", "name": "Qwen3 Coder 480B", "provider": "Qwen", "category": "Free", "description": "Coding-optimized 480B parameter model.", "endpoints": ["/v1/chat/completions"], "tier": "free", "multiplier": 2 },
{ "id": "glm4", "name": "GLM 4.5 Air", "provider": "Z.AI", "category": "Free", "description": "GLM 4.5 Air model.", "endpoints": ["/v1/chat/completions"], "tier": "free", "multiplier": 2 },
{ "id": "llama3", "name": "Llama 3.3 70B", "provider": "Meta", "category": "Premium", "description": "High-performance reasoning and coding.", "endpoints": ["/v1/chat/completions"], "tier": "free", "multiplier": 1 },
{ "id": "opus-4.5", "name": "Claude Opus 4.5", "provider": "Anthropic", "category": "Premium", "description": "Anthropic's most powerful model.", "endpoints": ["/v1/chat/completions"], "tier": "pro", "multiplier": 10 },
{ "id": "sonnet-4.5", "name": "Claude Sonnet 4.5", "provider": "Anthropic", "category": "Premium", "description": "Balanced intelligence and speed.", "endpoints": ["/v1/chat/completions"], "tier": "free", "multiplier": 5 },
{ "id": "gemini-2.5-pro", "name": "Gemini 2.5 Pro", "provider": "Google", "category": "Premium", "description": "Google's latest Pro model.", "endpoints": ["/v1/chat/completions"], "tier": "pro", "multiplier": 5 },
{ "id": "gemini-2.5-flash", "name": "Gemini 2.5 Flash", "provider": "Google", "category": "Free", "description": "Fast and efficient Gemini model.", "endpoints": ["/v1/chat/completions"], "tier": "free", "multiplier": 1 },
{ "id": "gemini-3-pro", "name": "Gemini 3 Pro", "provider": "Google", "category": "Premium", "description": "Next-gen Gemini Pro model.", "endpoints": ["/v1/chat/completions"], "tier": "ultimate", "multiplier": 8 },
{ "id": "gemini-3-flash", "name": "Gemini 3 Flash", "provider": "Google", "category": "Free", "description": "Next-gen fast Gemini model.", "endpoints": ["/v1/chat/completions"], "tier": "free", "multiplier": 2 },
{ "id": "titan", "name": "Titan Image Generator G1 V2", "provider": "AWS", "category": "Image", "description": "AWS Titan Image Generator.", "endpoints": ["/v1/generation/image", "/v1/generation/image/edit"], "tier": "free", "multiplier": 5 }
]
}
{
"error": "Daily quota exceeded."
}
System
List Models
Retrieve a list of available AI models
GET
/
v1
/
models
curl -X GET "https://apolloai.lol/v1/models"
import requests
# For local development, use: http://localhost:3000/v1/models
url = "https://apolloai.lol/v1/models"
try:
response = requests.get(url)
response.raise_for_status()
print(response.json())
except requests.exceptions.HTTPError as err:
print(f"HTTP Error: {err}")
print(f"Response Body: {response.text}")
except Exception as err:
print(f"Error: {err}")
// For local development, use: http://localhost:3000/v1/models
const url = "https://apolloai.lol/v1/models";
fetch(url)
.then(async response => {
if (!response.ok) {
const text = await response.text();
throw new Error(`HTTP error! status: ${response.status}, body: ${text}`);
}
return response.json();
})
.then(console.log)
.catch(console.error);
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
// For local development, use: http://localhost:3000/v1/models
url := "https://apolloai.lol/v1/models"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
if resp.StatusCode >= 400 {
fmt.Printf("Error (Status %d): %s\n", resp.StatusCode, string(body))
} else {
fmt.Println(string(body))
}
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
public class Main {
public static void main(String[] args) throws Exception {
// For local development, use: http://localhost:3000/v1/models
String url = "https://apolloai.lol/v1/models";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("x-api-key", "<api_key>") // Header optional for public endpoints
.GET()
.build();
client.sendAsync(request, BodyHandlers.ofString())
.thenAccept(response -> {
if (response.statusCode() >= 400) {
System.out.println("Error (Status " + response.statusCode() + "): " + response.body());
} else {
System.out.println(response.body());
}
})
.join();
}
}
require 'uri'
require 'net/http'
url = URI("https://apolloai.lol/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
#include <stdio.h>
#include <curl/curl.h>
int main(void) {
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://apolloai.lol/v1/models");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "x-api-key: <api_key>");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
use reqwest::Client;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = Client::new();
let res = client.get("https://apolloai.lol/v1/models")
.header("x-api-key", "<api_key>")
.send()
.await?;
let body = res.text().await?;
println!("{}", body);
Ok(())
}
{
"models": [
{ "id": "gpt-oss-120b", "name": "GPT OSS 120B", "provider": "OpenAI", "category": "OpenAI", "description": "High-performance 120B parameter model.", "endpoints": ["/v1/chat/completions"], "tier": "free", "multiplier": 3 },
{ "id": "qwen3-coder", "name": "Qwen3 Coder 480B", "provider": "Qwen", "category": "Free", "description": "Coding-optimized 480B parameter model.", "endpoints": ["/v1/chat/completions"], "tier": "free", "multiplier": 2 },
{ "id": "glm4", "name": "GLM 4.5 Air", "provider": "Z.AI", "category": "Free", "description": "GLM 4.5 Air model.", "endpoints": ["/v1/chat/completions"], "tier": "free", "multiplier": 2 },
{ "id": "llama3", "name": "Llama 3.3 70B", "provider": "Meta", "category": "Premium", "description": "High-performance reasoning and coding.", "endpoints": ["/v1/chat/completions"], "tier": "free", "multiplier": 1 },
{ "id": "opus-4.5", "name": "Claude Opus 4.5", "provider": "Anthropic", "category": "Premium", "description": "Anthropic's most powerful model.", "endpoints": ["/v1/chat/completions"], "tier": "pro", "multiplier": 10 },
{ "id": "sonnet-4.5", "name": "Claude Sonnet 4.5", "provider": "Anthropic", "category": "Premium", "description": "Balanced intelligence and speed.", "endpoints": ["/v1/chat/completions"], "tier": "free", "multiplier": 5 },
{ "id": "gemini-2.5-pro", "name": "Gemini 2.5 Pro", "provider": "Google", "category": "Premium", "description": "Google's latest Pro model.", "endpoints": ["/v1/chat/completions"], "tier": "pro", "multiplier": 5 },
{ "id": "gemini-2.5-flash", "name": "Gemini 2.5 Flash", "provider": "Google", "category": "Free", "description": "Fast and efficient Gemini model.", "endpoints": ["/v1/chat/completions"], "tier": "free", "multiplier": 1 },
{ "id": "gemini-3-pro", "name": "Gemini 3 Pro", "provider": "Google", "category": "Premium", "description": "Next-gen Gemini Pro model.", "endpoints": ["/v1/chat/completions"], "tier": "ultimate", "multiplier": 8 },
{ "id": "gemini-3-flash", "name": "Gemini 3 Flash", "provider": "Google", "category": "Free", "description": "Next-gen fast Gemini model.", "endpoints": ["/v1/chat/completions"], "tier": "free", "multiplier": 2 },
{ "id": "titan", "name": "Titan Image Generator G1 V2", "provider": "AWS", "category": "Image", "description": "AWS Titan Image Generator.", "endpoints": ["/v1/generation/image", "/v1/generation/image/edit"], "tier": "free", "multiplier": 5 }
]
}
{
"error": "Daily quota exceeded."
}
Fetch comprehensive information about all available models, including their IDs, capabilities, and tier requirements.
Headers
string
required
Your Apollo AI API key.
Response
array
Array of model objects.
Show Model Object
Show Model Object
string
The unique identifier for the model (e.g.,
gpt-oss-120b).string
The human-readable name of the model.
string
A brief description of the model’s capabilities.
string[]
List of supported API endpoints for this model (e.g.,
["/v1/generation/prompt"]).string
The minimal subscription tier required to access this model (
starter, economy, pro, ultimate).number
The token cost multiplier for this model.
curl -X GET "https://apolloai.lol/v1/models"
import requests
# For local development, use: http://localhost:3000/v1/models
url = "https://apolloai.lol/v1/models"
try:
response = requests.get(url)
response.raise_for_status()
print(response.json())
except requests.exceptions.HTTPError as err:
print(f"HTTP Error: {err}")
print(f"Response Body: {response.text}")
except Exception as err:
print(f"Error: {err}")
// For local development, use: http://localhost:3000/v1/models
const url = "https://apolloai.lol/v1/models";
fetch(url)
.then(async response => {
if (!response.ok) {
const text = await response.text();
throw new Error(`HTTP error! status: ${response.status}, body: ${text}`);
}
return response.json();
})
.then(console.log)
.catch(console.error);
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
// For local development, use: http://localhost:3000/v1/models
url := "https://apolloai.lol/v1/models"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
if resp.StatusCode >= 400 {
fmt.Printf("Error (Status %d): %s\n", resp.StatusCode, string(body))
} else {
fmt.Println(string(body))
}
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
public class Main {
public static void main(String[] args) throws Exception {
// For local development, use: http://localhost:3000/v1/models
String url = "https://apolloai.lol/v1/models";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("x-api-key", "<api_key>") // Header optional for public endpoints
.GET()
.build();
client.sendAsync(request, BodyHandlers.ofString())
.thenAccept(response -> {
if (response.statusCode() >= 400) {
System.out.println("Error (Status " + response.statusCode() + "): " + response.body());
} else {
System.out.println(response.body());
}
})
.join();
}
}
require 'uri'
require 'net/http'
url = URI("https://apolloai.lol/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
#include <stdio.h>
#include <curl/curl.h>
int main(void) {
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://apolloai.lol/v1/models");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "x-api-key: <api_key>");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
use reqwest::Client;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = Client::new();
let res = client.get("https://apolloai.lol/v1/models")
.header("x-api-key", "<api_key>")
.send()
.await?;
let body = res.text().await?;
println!("{}", body);
Ok(())
}
{
"models": [
{ "id": "gpt-oss-120b", "name": "GPT OSS 120B", "provider": "OpenAI", "category": "OpenAI", "description": "High-performance 120B parameter model.", "endpoints": ["/v1/chat/completions"], "tier": "free", "multiplier": 3 },
{ "id": "qwen3-coder", "name": "Qwen3 Coder 480B", "provider": "Qwen", "category": "Free", "description": "Coding-optimized 480B parameter model.", "endpoints": ["/v1/chat/completions"], "tier": "free", "multiplier": 2 },
{ "id": "glm4", "name": "GLM 4.5 Air", "provider": "Z.AI", "category": "Free", "description": "GLM 4.5 Air model.", "endpoints": ["/v1/chat/completions"], "tier": "free", "multiplier": 2 },
{ "id": "llama3", "name": "Llama 3.3 70B", "provider": "Meta", "category": "Premium", "description": "High-performance reasoning and coding.", "endpoints": ["/v1/chat/completions"], "tier": "free", "multiplier": 1 },
{ "id": "opus-4.5", "name": "Claude Opus 4.5", "provider": "Anthropic", "category": "Premium", "description": "Anthropic's most powerful model.", "endpoints": ["/v1/chat/completions"], "tier": "pro", "multiplier": 10 },
{ "id": "sonnet-4.5", "name": "Claude Sonnet 4.5", "provider": "Anthropic", "category": "Premium", "description": "Balanced intelligence and speed.", "endpoints": ["/v1/chat/completions"], "tier": "free", "multiplier": 5 },
{ "id": "gemini-2.5-pro", "name": "Gemini 2.5 Pro", "provider": "Google", "category": "Premium", "description": "Google's latest Pro model.", "endpoints": ["/v1/chat/completions"], "tier": "pro", "multiplier": 5 },
{ "id": "gemini-2.5-flash", "name": "Gemini 2.5 Flash", "provider": "Google", "category": "Free", "description": "Fast and efficient Gemini model.", "endpoints": ["/v1/chat/completions"], "tier": "free", "multiplier": 1 },
{ "id": "gemini-3-pro", "name": "Gemini 3 Pro", "provider": "Google", "category": "Premium", "description": "Next-gen Gemini Pro model.", "endpoints": ["/v1/chat/completions"], "tier": "ultimate", "multiplier": 8 },
{ "id": "gemini-3-flash", "name": "Gemini 3 Flash", "provider": "Google", "category": "Free", "description": "Next-gen fast Gemini model.", "endpoints": ["/v1/chat/completions"], "tier": "free", "multiplier": 2 },
{ "id": "titan", "name": "Titan Image Generator G1 V2", "provider": "AWS", "category": "Image", "description": "AWS Titan Image Generator.", "endpoints": ["/v1/generation/image", "/v1/generation/image/edit"], "tier": "free", "multiplier": 5 }
]
}
{
"error": "Daily quota exceeded."
}