cURL
curl "https://api.ornnai.com/api/token-types-free"
import requests
free = requests.get("https://api.ornnai.com/api/token-types-free").json()["data"]
const res = await fetch("https://api.ornnai.com/api/token-types-free");
const { data } = await res.json();
<?php
$ch = curl_init("https://api.ornnai.com/api/token-types-free");
curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true]);
$data = json_decode(curl_exec($ch), true);
package main
import (
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.ornnai.com/api/token-types-free", nil)
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
_ = body
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder(
URI.create("https://api.ornnai.com/api/token-types-free"))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
require "net/http"
require "json"
uri = URI("https://api.ornnai.com/api/token-types-free")
res = Net::HTTP.get_response(uri)
data = JSON.parse(res.body)
{
"success": true,
"access": "free-tier",
"data": [
{
"lab": "anthropic",
"label": "Anthropic"
},
{
"lab": "openai",
"label": "OpenAI"
},
{
"lab": "google",
"label": "Google"
},
{
"lab": "deepseek",
"label": "DeepSeek"
}
]
}List free-tier OTPI labs
Returns the OTPI labs available on the public (no-key) tier as { lab, label } pairs. Pair this with /api/token-types to render the free-vs-paid split. The response does not vary by caller tier.
GET
/
api
/
token-types-free
cURL
curl "https://api.ornnai.com/api/token-types-free"
import requests
free = requests.get("https://api.ornnai.com/api/token-types-free").json()["data"]
const res = await fetch("https://api.ornnai.com/api/token-types-free");
const { data } = await res.json();
<?php
$ch = curl_init("https://api.ornnai.com/api/token-types-free");
curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true]);
$data = json_decode(curl_exec($ch), true);
package main
import (
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.ornnai.com/api/token-types-free", nil)
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
_ = body
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder(
URI.create("https://api.ornnai.com/api/token-types-free"))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
require "net/http"
require "json"
uri = URI("https://api.ornnai.com/api/token-types-free")
res = Net::HTTP.get_response(uri)
data = JSON.parse(res.body)
{
"success": true,
"access": "free-tier",
"data": [
{
"lab": "anthropic",
"label": "Anthropic"
},
{
"lab": "openai",
"label": "OpenAI"
},
{
"lab": "google",
"label": "Google"
},
{
"lab": "deepseek",
"label": "DeepSeek"
}
]
}Overview
Returns the OTPI labs available on the public (no-key) tier as{ lab, label } pairs. Pair this with /api/token-types to render the free-vs-paid split. The response does not vary by caller tier.Response
200 - application/json
Free-tier OTPI labs.
⌘I

