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.
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": "Kandor",
"KoboldSurname": "Vodufo",
"KoboldOrigin": "Krolzlomprotzor",
"KoboldColor": "sky blue",
"SpecialTrait": "believes to speak with the dead",
"KoboldKinship": "son of the male cousin of first degree of the sister-in-law of Kerri",
"KoboldDish": "feline braised with vegetables",
"KoboldStory": "a place known as Krolzlomprotzor witnessed the hatching of the egg of Kandor, just hatched its scales were brown in a few days became sky blue. Its village amused itself with hunting ofthe basilisks. A war broke out between Kandor's clan and the gods. Hostilities continued until young Kandor, was drugged by its cousin in-law of first degree on mother's side but managed to singe the last ofthe illithid ofthe the dump of Cartrogbash. Kandor's clan came out of it satiated, even though no ranger survived. Just before reaching adulthood decided to escape and become a great farmer.",
"KoboldJob": "farmer"
}
{
"KoboldName": "Sassuch",
"KoboldSurname": "Mossopa",
"KoboldOrigin": "L isola di Fortrogwosi",
"KoboldColor": "rosa",
"SpecialTrait": "nessuno",
"KoboldKinship": "cugino acquisito di primo grado da parte di padre dello zio di Ukrabal",
"KoboldDish": "brodo di caracal e grifone con paprika e erba cipollina",
"KoboldStory": "l'uovo di Sassuch venne abbandonato in un luogo conosciuto come L isola di Fortrogwosi, appena nato le sue scaglie erano di un ributtante rosso poi crescendo divennero rosa. In seguito a l'ultima delle tante carestie accuratamente censurate tutto il suo clan venne aiutato da un gruppo di sodomizzatori di sith. Una guerra scoppiò tra il clan di Sassuch e gli jedi della il ghiacciaio di Yorzwolyontory. Le ostilità continuarono fino a quando il giovane Sassuch, fu ostacolato da suo prozio e riuscÏ a uccidere l'ultimo dei capelloni della la periferia di Zlom. Il clan di Sassuch ne uscÏ sazio, anche se nessun accattone ci guadagnò qualcosa. Poco prima di raggiungere la maggiore età disse a tutti di voler scappare per essere un ranger.",
"KoboldJob": "ranger"
}
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.