Kobold As A Service
A procedural generation HTTP API that conjures whimsical Kobold RPG character sheets on demand. Every name, origin, and backstory is woven from Polygen grammars â fetch a fresh kobold with a single request.
Call the API
Send a POST
request to /api/generate-kobold
and get a complete character sheet back. Pick your language:
Rate limit: 1 request per second per IP. Excess requests receive a 429 Too Many Requests response.
Need to exceed the rate limit? Add an
X-Bypass-Key
header with a pre-shared secret configured on the server to skip throttling entirely.
Contact the operator to request a key.
use GuzzleHttp\Client;
$client = new Client();
$response = $client->post('https://kaas.procionegobbo.it/api/generate-kobold', [
'json' => ['language' => 'en'],
]);
$kobold = json_decode((string) $response->getBody(), true);
const response = await fetch('https://kaas.procionegobbo.it/api/generate-kobold', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ language: 'en' }),
});
const kobold = await response.json();
package main
import (
"bytes"
"net/http"
)
func main() {
body := bytes.NewBufferString(`{"language":"en"}`)
http.Post("https://kaas.procionegobbo.it/api/generate-kobold", "application/json", body)
}
import requests
response = requests.post(
"https://kaas.procionegobbo.it/api/generate-kobold",
json={"language": "en"},
)
kobold = response.json()
curl -X POST https://kaas.procionegobbo.it/api/generate-kobold \
-H "Content-Type: application/json" \
-d '{"language": "en"}'
Sample Output
Every field is generated live by the Polygen grammar engine and changes on each page load.
Currently available languages: English (en) and Italian (it).
{
"KoboldName": "Suchass",
"KoboldSurname": "De Ginidu",
"KoboldOrigin": "The volcanic complex of Zlomblash",
"KoboldColor": "green",
"SpecialTrait": "speaks with the dead",
"KoboldKinship": "uncle of the father of the great-great-grandmother of Kerri",
"KoboldDish": "caracal and butterfly dragon broth with cloves and thyme Ukrabal style",
"KoboldStory": "Suchass was born in a place known as The volcanic complex of Zlomblash, just hatched its scales were of a slimy green. Its clan lived off hunting. A skirmish broke out between Suchass's clan and the wolves werefolk ofthe the glacier of Trogporyony. Hostilities continued until young Suchass, was pushed by deception by its uncle but managed to drive mad the last ofthe bald ones. Suchass's clan came out of it weakened. Just before reaching adulthood was forced to follow the career of the daughter-in-law of the great-uncle of its cousin in-law of fourth degree on father's side to become a cook.",
"KoboldJob": "cook"
}
{
"KoboldName": "Kassur",
"KoboldSurname": "Konyfu",
"KoboldOrigin": "La cittĂ di Trogblash",
"KoboldColor": "Marroncino scuro",
"SpecialTrait": "ha una cresta di peli",
"KoboldKinship": "cugino acquisito da parte di madre del figlio del padre di Krubal",
"KoboldDish": "felino alla scottadito",
"KoboldStory": "un luogo conosciuto come La città di Trogblash vide la schiusa dell'uovo di Kassur, appena nato le sue scaglie erano Marroncino scuro. Il suo clan si procurava da vivere con l'agricoltura dei cavalieri di Mordiggian della lo zoo di Costroga. Una guerra scoppiò tra il clan di Kassur e gli elfi oscuri. Le ostilità continuarono fino a quando il giovane Kassur, fu drogato da suo figlio ma riuscÏ a bruciacchiare l'ultimo dei tanar'ri. Il clan di Kassur ne uscÏ indebolito, anche se nessun barbaro ne fu felice. Superata la maggiore età fu convinto a scappare e essere un vero guerriero.",
"KoboldJob": "guerriero"
}
Standing on the shoulders of Kobolds
KAAS is powered by polygen-php, a PHP port of the original Polygen by Ulisse Spanò. The project was inspired by the tabletop adventures and podcasts of FumbleGDR â they don't ship a character generator, but their stories sparked the idea for this one.
Ecosystem
Explore the tools and community behind KAAS.