Mad Libs Generator API
Overview
To use Mad Libs Generator, you need an API key. You can get one by creating a free account and visiting your dashboard.
GET Endpoint
https://api.apiverve.com/v1/madlibsExample
How to call the Mad Libs Generator API in different programming languages.
curl -X GET \
"https://api.apiverve.com/v1/madlibs?category=funny&count=1" \
-H "X-API-Key: your_api_key_here"const response = await fetch('https://api.apiverve.com/v1/madlibs?category=funny&count=1', {
method: 'GET',
headers: {
'X-API-Key': 'your_api_key_here',
'Content-Type': 'application/json'
}
});
const data = await response.json();
console.log(data);import requests
headers = {
'X-API-Key': 'your_api_key_here',
'Content-Type': 'application/json'
}
response = requests.get('https://api.apiverve.com/v1/madlibs?category=funny&count=1', headers=headers)
data = response.json()
print(data)package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.apiverve.com/v1/madlibs?category=funny&count=1", nil)
req.Header.Set("X-API-Key", "your_api_key_here")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}{
"status": "ok",
"error": null,
"data": {
"stories": [
{
"title": "Restaurant Disaster",
"template": "I went to a {adjective} restaurant called The {adjective} {noun}. The waiter was a {adjective} {animal} who kept {verb_ing} on the tables. I ordered {number} {adjective} {plural_noun} with a side of {adjective} {noun}. When the bill came, it said I owed {number} {plural_noun}!",
"blanks": [
{
"id": 1,
"type": "adjective",
"label": "Adjective"
},
{
"id": 2,
"type": "adjective",
"label": "Adjective"
},
{
"id": 3,
"type": "noun",
"label": "Noun"
},
{
"id": 4,
"type": "adjective",
"label": "Adjective"
},
{
"id": 5,
"type": "animal",
"label": "Animal"
},
{
"id": 6,
"type": "verb_ing",
"label": "Verb ending in -ing"
},
{
"id": 7,
"type": "number",
"label": "Number"
},
{
"id": 8,
"type": "adjective",
"label": "Adjective"
},
{
"id": 9,
"type": "plural_noun",
"label": "Plural Noun"
},
{
"id": 10,
"type": "adjective",
"label": "Adjective"
},
{
"id": 11,
"type": "noun",
"label": "Noun"
},
{
"id": 12,
"type": "number",
"label": "Number"
},
{
"id": 13,
"type": "plural_noun",
"label": "Plural Noun"
}
],
"blankCount": 13,
"category": "funny"
}
],
"count": 1,
"category": "funny",
"html": "<html><head><title>Mad Libs</title><style>body {font-family: Arial, sans-serif; padding: 20px; max-width: 800px; margin: 0 auto;}h1 {text-align: center; color: #E91E63;}.story-card {background: #fff; border: 2px solid #E91E63; padding: 25px; margin: 25px 0; border-radius: 15px;}.title {font-size: 24px; font-weight: bold; color: #E91E63; margin-bottom: 20px;}.blanks-section {background: #FCE4EC; padding: 20px; border-radius: 10px; margin-bottom: 20px;}.blanks-section h3 {margin-top: 0;}.blank-item {margin: 10px 0; display: flex; align-items: center;}.blank-label {min-width: 50px; font-weight: bold;}.blank-type {color: #666; margin-left: 10px;}.blank-input {flex: 1; padding: 8px; border: 1px solid #E91E63; border-radius: 5px; margin-left: 10px;}.story-template {line-height: 2; font-size: 16px;}.blank-marker {background: #E91E63; color: white; padding: 2px 8px; border-radius: 3px; font-weight: bold;}</style></head><body><h1>Mad Libs</h1><div class='story-card'><div class='title'>Restaurant Disaster</div><div class='blanks-section'><h3>Fill in the blanks:</h3><div class='blank-item'><span class='blank-label'>1.</span><span class='blank-type'>Adjective</span><input type='text' class='blank-input' placeholder='Enter adjective'></div><div class='blank-item'><span class='blank-label'>2.</span><span class='blank-type'>Adjective</span><input type='text' class='blank-input' placeholder='Enter adjective'></div><div class='blank-item'><span class='blank-label'>3.</span><span class='blank-type'>Noun</span><input type='text' class='blank-input' placeholder='Enter noun'></div><div class='blank-item'><span class='blank-label'>4.</span><span class='blank-type'>Adjective</span><input type='text' class='blank-input' placeholder='Enter adjective'></div><div class='blank-item'><span class='blank-label'>5.</span><span class='blank-type'>Animal</span><input type='text' class='blank-input' placeholder='Enter animal'></div><div class='blank-item'><span class='blank-label'>6.</span><span class='blank-type'>Verb ending in -ing</span><input type='text' class='blank-input' placeholder='Enter verb ending in -ing'></div><div class='blank-item'><span class='blank-label'>7.</span><span class='blank-type'>Number</span><input type='text' class='blank-input' placeholder='Enter number'></div><div class='blank-item'><span class='blank-label'>8.</span><span class='blank-type'>Adjective</span><input type='text' class='blank-input' placeholder='Enter adjective'></div><div class='blank-item'><span class='blank-label'>9.</span><span class='blank-type'>Plural Noun</span><input type='text' class='blank-input' placeholder='Enter plural noun'></div><div class='blank-item'><span class='blank-label'>10.</span><span class='blank-type'>Adjective</span><input type='text' class='blank-input' placeholder='Enter adjective'></div><div class='blank-item'><span class='blank-label'>11.</span><span class='blank-type'>Noun</span><input type='text' class='blank-input' placeholder='Enter noun'></div><div class='blank-item'><span class='blank-label'>12.</span><span class='blank-type'>Number</span><input type='text' class='blank-input' placeholder='Enter number'></div><div class='blank-item'><span class='blank-label'>13.</span><span class='blank-type'>Plural Noun</span><input type='text' class='blank-input' placeholder='Enter plural noun'></div></div><div class='story-template'>I went to a <span class='blank-marker'>1</span> restaurant called The <span class='blank-marker'>2</span> <span class='blank-marker'>3</span>. The waiter was a <span class='blank-marker'>4</span> <span class='blank-marker'>5</span> who kept <span class='blank-marker'>6</span> on the tables. I ordered <span class='blank-marker'>7</span> <span class='blank-marker'>8</span> <span class='blank-marker'>9</span> with a side of <span class='blank-marker'>10</span> <span class='blank-marker'>11</span>. When the bill came, it said I owed <span class='blank-marker'>12</span> <span class='blank-marker'>13</span>!</div></div></body></html>",
"image": {
"imageName": "25d0dd78-3ad1-4f14-a30f-f8bdd8ebcc33_madlibs.png",
"format": ".png",
"downloadURL": "https://storage.googleapis.com/apiverve/APIData/madlibs/25d0dd78-3ad1-4f14-a30f-f8bdd8ebcc33_madlibs.png?GoogleAccessId=635500398038-compute%40developer.gserviceaccount.com&Expires=1766010349&Signature=e4owJidlQu2GZKe1GSuClCNSpOX1UQkxdweeS08IVOxkNscZGNr33BdYhNSG%2BuVIZ2XdEeAc3o2%2BY2hxP01APjgqMgCe4QvHRBgbCLPUiueHaczDJ1m1ZBI41aRaYjM8kdB7M0iYLNhdgqogXTYs9Zc%2FaRj9a6txpLz7fb2YexgG0fXhkcZuGeCb1haQlMTHL1YZbh9zJIKgHSqMhKK3jqhf0stuIDXIWkWdiK6fbP1B2aZkomqwpbx3iQKwbhca8rwFMWjUMRN5fspY%2FRtNbS7kIWaznc07VaBloITlQktm%2FMMojDc6QSanGeegRKealslcO53diZRsdLTZvB3wAQ%3D%3D",
"expires": 1766010349930
}
}
}Authentication
The Mad Libs Generator API requires authentication via API key. Include your API key in the request header:
X-API-Key: your_api_key_hereInteractive API Playground
Test the Mad Libs Generator API directly in your browser with live requests and responses.
Parameters
The following parameters are available for the Mad Libs Generator API:
Generate Mad Libs
| Parameter | Type | Required | Description | Default | Example |
|---|---|---|---|---|---|
categoryPremium | string | optional | Story category Supported values: randomadventurefunnyfairytalescifi | ||
countPremium | integer | optional | Number of stories Range: 1 - 5 |
Response
The Mad Libs Generator API returns responses in JSON, XML, YAML, and CSV formats. The JSON response is shown in the Example section above; alternative formats below.
Other Response Formats
<?xml version="1.0" encoding="UTF-8"?>
<response>
<status>ok</status>
<error xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<data>
<stories>
<storie>
<title>Restaurant Disaster</title>
<template>I went to a {adjective} restaurant called The {adjective} {noun}. The waiter was a {adjective} {animal} who kept {verb_ing} on the tables. I ordered {number} {adjective} {plural_noun} with a side of {adjective} {noun}. When the bill came, it said I owed {number} {plural_noun}!</template>
<blanks>
<blank>
<id>1</id>
<type>adjective</type>
<label>Adjective</label>
</blank>
<blank>
<id>2</id>
<type>adjective</type>
<label>Adjective</label>
</blank>
<blank>
<id>3</id>
<type>noun</type>
<label>Noun</label>
</blank>
<blank>
<id>4</id>
<type>adjective</type>
<label>Adjective</label>
</blank>
<blank>
<id>5</id>
<type>animal</type>
<label>Animal</label>
</blank>
<blank>
<id>6</id>
<type>verb_ing</type>
<label>Verb ending in -ing</label>
</blank>
<blank>
<id>7</id>
<type>number</type>
<label>Number</label>
</blank>
<blank>
<id>8</id>
<type>adjective</type>
<label>Adjective</label>
</blank>
<blank>
<id>9</id>
<type>plural_noun</type>
<label>Plural Noun</label>
</blank>
<blank>
<id>10</id>
<type>adjective</type>
<label>Adjective</label>
</blank>
<blank>
<id>11</id>
<type>noun</type>
<label>Noun</label>
</blank>
<blank>
<id>12</id>
<type>number</type>
<label>Number</label>
</blank>
<blank>
<id>13</id>
<type>plural_noun</type>
<label>Plural Noun</label>
</blank>
</blanks>
<blankCount>13</blankCount>
<category>funny</category>
</storie>
</stories>
<count>1</count>
<category>funny</category>
<html><html><head><title>Mad Libs</title><style>body {font-family: Arial, sans-serif; padding: 20px; max-width: 800px; margin: 0 auto;}h1 {text-align: center; color: #E91E63;}.story-card {background: #fff; border: 2px solid #E91E63; padding: 25px; margin: 25px 0; border-radius: 15px;}.title {font-size: 24px; font-weight: bold; color: #E91E63; margin-bottom: 20px;}.blanks-section {background: #FCE4EC; padding: 20px; border-radius: 10px; margin-bottom: 20px;}.blanks-section h3 {margin-top: 0;}.blank-item {margin: 10px 0; display: flex; align-items: center;}.blank-label {min-width: 50px; font-weight: bold;}.blank-type {color: #666; margin-left: 10px;}.blank-input {flex: 1; padding: 8px; border: 1px solid #E91E63; border-radius: 5px; margin-left: 10px;}.story-template {line-height: 2; font-size: 16px;}.blank-marker {background: #E91E63; color: white; padding: 2px 8px; border-radius: 3px; font-weight: bold;}</style></head><body><h1>Mad Libs</h1><div class='story-card'><div class='title'>Restaurant Disaster</div><div class='blanks-section'><h3>Fill in the blanks:</h3><div class='blank-item'><span class='blank-label'>1.</span><span class='blank-type'>Adjective</span><input type='text' class='blank-input' placeholder='Enter adjective'></div><div class='blank-item'><span class='blank-label'>2.</span><span class='blank-type'>Adjective</span><input type='text' class='blank-input' placeholder='Enter adjective'></div><div class='blank-item'><span class='blank-label'>3.</span><span class='blank-type'>Noun</span><input type='text' class='blank-input' placeholder='Enter noun'></div><div class='blank-item'><span class='blank-label'>4.</span><span class='blank-type'>Adjective</span><input type='text' class='blank-input' placeholder='Enter adjective'></div><div class='blank-item'><span class='blank-label'>5.</span><span class='blank-type'>Animal</span><input type='text' class='blank-input' placeholder='Enter animal'></div><div class='blank-item'><span class='blank-label'>6.</span><span class='blank-type'>Verb ending in -ing</span><input type='text' class='blank-input' placeholder='Enter verb ending in -ing'></div><div class='blank-item'><span class='blank-label'>7.</span><span class='blank-type'>Number</span><input type='text' class='blank-input' placeholder='Enter number'></div><div class='blank-item'><span class='blank-label'>8.</span><span class='blank-type'>Adjective</span><input type='text' class='blank-input' placeholder='Enter adjective'></div><div class='blank-item'><span class='blank-label'>9.</span><span class='blank-type'>Plural Noun</span><input type='text' class='blank-input' placeholder='Enter plural noun'></div><div class='blank-item'><span class='blank-label'>10.</span><span class='blank-type'>Adjective</span><input type='text' class='blank-input' placeholder='Enter adjective'></div><div class='blank-item'><span class='blank-label'>11.</span><span class='blank-type'>Noun</span><input type='text' class='blank-input' placeholder='Enter noun'></div><div class='blank-item'><span class='blank-label'>12.</span><span class='blank-type'>Number</span><input type='text' class='blank-input' placeholder='Enter number'></div><div class='blank-item'><span class='blank-label'>13.</span><span class='blank-type'>Plural Noun</span><input type='text' class='blank-input' placeholder='Enter plural noun'></div></div><div class='story-template'>I went to a <span class='blank-marker'>1</span> restaurant called The <span class='blank-marker'>2</span> <span class='blank-marker'>3</span>. The waiter was a <span class='blank-marker'>4</span> <span class='blank-marker'>5</span> who kept <span class='blank-marker'>6</span> on the tables. I ordered <span class='blank-marker'>7</span> <span class='blank-marker'>8</span> <span class='blank-marker'>9</span> with a side of <span class='blank-marker'>10</span> <span class='blank-marker'>11</span>. When the bill came, it said I owed <span class='blank-marker'>12</span> <span class='blank-marker'>13</span>!</div></div></body></html></html>
<image>
<imageName>25d0dd78-3ad1-4f14-a30f-f8bdd8ebcc33_madlibs.png</imageName>
<format>.png</format>
<downloadURL>https://storage.googleapis.com/apiverve/APIData/madlibs/25d0dd78-3ad1-4f14-a30f-f8bdd8ebcc33_madlibs.png?GoogleAccessId=635500398038-compute%40developer.gserviceaccount.com&Expires=1766010349&Signature=e4owJidlQu2GZKe1GSuClCNSpOX1UQkxdweeS08IVOxkNscZGNr33BdYhNSG%2BuVIZ2XdEeAc3o2%2BY2hxP01APjgqMgCe4QvHRBgbCLPUiueHaczDJ1m1ZBI41aRaYjM8kdB7M0iYLNhdgqogXTYs9Zc%2FaRj9a6txpLz7fb2YexgG0fXhkcZuGeCb1haQlMTHL1YZbh9zJIKgHSqMhKK3jqhf0stuIDXIWkWdiK6fbP1B2aZkomqwpbx3iQKwbhca8rwFMWjUMRN5fspY%2FRtNbS7kIWaznc07VaBloITlQktm%2FMMojDc6QSanGeegRKealslcO53diZRsdLTZvB3wAQ%3D%3D</downloadURL>
<expires>1766010349930</expires>
</image>
</data>
</response>
status: ok
error: null
data:
stories:
- title: Restaurant Disaster
template: >-
I went to a {adjective} restaurant called The {adjective} {noun}. The
waiter was a {adjective} {animal} who kept {verb_ing} on the tables. I
ordered {number} {adjective} {plural_noun} with a side of {adjective}
{noun}. When the bill came, it said I owed {number} {plural_noun}!
blanks:
- id: 1
type: adjective
label: Adjective
- id: 2
type: adjective
label: Adjective
- id: 3
type: noun
label: Noun
- id: 4
type: adjective
label: Adjective
- id: 5
type: animal
label: Animal
- id: 6
type: verb_ing
label: Verb ending in -ing
- id: 7
type: number
label: Number
- id: 8
type: adjective
label: Adjective
- id: 9
type: plural_noun
label: Plural Noun
- id: 10
type: adjective
label: Adjective
- id: 11
type: noun
label: Noun
- id: 12
type: number
label: Number
- id: 13
type: plural_noun
label: Plural Noun
blankCount: 13
category: funny
count: 1
category: funny
html: >-
<html><head><title>Mad Libs</title><style>body {font-family: Arial,
sans-serif; padding: 20px; max-width: 800px; margin: 0 auto;}h1 {text-align:
center; color: #E91E63;}.story-card {background: #fff; border: 2px solid
#E91E63; padding: 25px; margin: 25px 0; border-radius: 15px;}.title
{font-size: 24px; font-weight: bold; color: #E91E63; margin-bottom:
20px;}.blanks-section {background: #FCE4EC; padding: 20px; border-radius:
10px; margin-bottom: 20px;}.blanks-section h3 {margin-top: 0;}.blank-item
{margin: 10px 0; display: flex; align-items: center;}.blank-label
{min-width: 50px; font-weight: bold;}.blank-type {color: #666; margin-left:
10px;}.blank-input {flex: 1; padding: 8px; border: 1px solid #E91E63;
border-radius: 5px; margin-left: 10px;}.story-template {line-height: 2;
font-size: 16px;}.blank-marker {background: #E91E63; color: white; padding:
2px 8px; border-radius: 3px; font-weight: bold;}</style></head><body><h1>Mad
Libs</h1><div class='story-card'><div class='title'>Restaurant
Disaster</div><div class='blanks-section'><h3>Fill in the blanks:</h3><div
class='blank-item'><span class='blank-label'>1.</span><span
class='blank-type'>Adjective</span><input type='text' class='blank-input'
placeholder='Enter adjective'></div><div class='blank-item'><span
class='blank-label'>2.</span><span class='blank-type'>Adjective</span><input
type='text' class='blank-input' placeholder='Enter adjective'></div><div
class='blank-item'><span class='blank-label'>3.</span><span
class='blank-type'>Noun</span><input type='text' class='blank-input'
placeholder='Enter noun'></div><div class='blank-item'><span
class='blank-label'>4.</span><span class='blank-type'>Adjective</span><input
type='text' class='blank-input' placeholder='Enter adjective'></div><div
class='blank-item'><span class='blank-label'>5.</span><span
class='blank-type'>Animal</span><input type='text' class='blank-input'
placeholder='Enter animal'></div><div class='blank-item'><span
class='blank-label'>6.</span><span class='blank-type'>Verb ending in
-ing</span><input type='text' class='blank-input' placeholder='Enter verb
ending in -ing'></div><div class='blank-item'><span
class='blank-label'>7.</span><span class='blank-type'>Number</span><input
type='text' class='blank-input' placeholder='Enter number'></div><div
class='blank-item'><span class='blank-label'>8.</span><span
class='blank-type'>Adjective</span><input type='text' class='blank-input'
placeholder='Enter adjective'></div><div class='blank-item'><span
class='blank-label'>9.</span><span class='blank-type'>Plural
Noun</span><input type='text' class='blank-input' placeholder='Enter plural
noun'></div><div class='blank-item'><span
class='blank-label'>10.</span><span
class='blank-type'>Adjective</span><input type='text' class='blank-input'
placeholder='Enter adjective'></div><div class='blank-item'><span
class='blank-label'>11.</span><span class='blank-type'>Noun</span><input
type='text' class='blank-input' placeholder='Enter noun'></div><div
class='blank-item'><span class='blank-label'>12.</span><span
class='blank-type'>Number</span><input type='text' class='blank-input'
placeholder='Enter number'></div><div class='blank-item'><span
class='blank-label'>13.</span><span class='blank-type'>Plural
Noun</span><input type='text' class='blank-input' placeholder='Enter plural
noun'></div></div><div class='story-template'>I went to a <span
class='blank-marker'>1</span> restaurant called The <span
class='blank-marker'>2</span> <span class='blank-marker'>3</span>. The
waiter was a <span class='blank-marker'>4</span> <span
class='blank-marker'>5</span> who kept <span class='blank-marker'>6</span>
on the tables. I ordered <span class='blank-marker'>7</span> <span
class='blank-marker'>8</span> <span class='blank-marker'>9</span> with a
side of <span class='blank-marker'>10</span> <span
class='blank-marker'>11</span>. When the bill came, it said I owed <span
class='blank-marker'>12</span> <span
class='blank-marker'>13</span>!</div></div></body></html>
image:
imageName: 25d0dd78-3ad1-4f14-a30f-f8bdd8ebcc33_madlibs.png
format: .png
downloadURL: >-
https://storage.googleapis.com/apiverve/APIData/madlibs/25d0dd78-3ad1-4f14-a30f-f8bdd8ebcc33_madlibs.png?GoogleAccessId=635500398038-compute%40developer.gserviceaccount.com&Expires=1766010349&Signature=e4owJidlQu2GZKe1GSuClCNSpOX1UQkxdweeS08IVOxkNscZGNr33BdYhNSG%2BuVIZ2XdEeAc3o2%2BY2hxP01APjgqMgCe4QvHRBgbCLPUiueHaczDJ1m1ZBI41aRaYjM8kdB7M0iYLNhdgqogXTYs9Zc%2FaRj9a6txpLz7fb2YexgG0fXhkcZuGeCb1haQlMTHL1YZbh9zJIKgHSqMhKK3jqhf0stuIDXIWkWdiK6fbP1B2aZkomqwpbx3iQKwbhca8rwFMWjUMRN5fspY%2FRtNbS7kIWaznc07VaBloITlQktm%2FMMojDc6QSanGeegRKealslcO53diZRsdLTZvB3wAQ%3D%3D
expires: 1766010349930
| key | value |
|---|---|
| stories | [{title:Restaurant Disaster,template:I went to a {adjective} restaurant called The {adjective} {noun}. The waiter was a {adjective} {animal} who kept {verb_ing} on the tables. I ordered {number} {adjective} {plural_noun} with a side of {adjective} {noun}. When the bill came, it said I owed {number} {plural_noun}!,blanks:[{id:1,type:adjective,label:Adjective},{id:2,type:adjective,label:Adjective},{id:3,type:noun,label:Noun},{id:4,type:adjective,label:Adjective},{id:5,type:animal,label:Animal},{id:6,type:verb_ing,label:Verb ending in -ing},{id:7,type:number,label:Number},{id:8,type:adjective,label:Adjective},{id:9,type:plural_noun,label:Plural Noun},{id:10,type:adjective,label:Adjective},{id:11,type:noun,label:Noun},{id:12,type:number,label:Number},{id:13,type:plural_noun,label:Plural Noun}],blankCount:13,category:funny}] |
| count | 1 |
| category | funny |
| html | <html><head><title>Mad Libs</title><style>body {font-family: Arial, sans-serif; padding: 20px; max-width: 800px; margin: 0 auto;}h1 {text-align: center; color: #E91E63;}.story-card {background: #fff; border: 2px solid #E91E63; padding: 25px; margin: 25px 0; border-radius: 15px;}.title {font-size: 24px; font-weight: bold; color: #E91E63; margin-bottom: 20px;}.blanks-section {background: #FCE4EC; padding: 20px; border-radius: 10px; margin-bottom: 20px;}.blanks-section h3 {margin-top: 0;}.blank-item {margin: 10px 0; display: flex; align-items: center;}.blank-label {min-width: 50px; font-weight: bold;}.blank-type {color: #666; margin-left: 10px;}.blank-input {flex: 1; padding: 8px; border: 1px solid #E91E63; border-radius: 5px; margin-left: 10px;}.story-template {line-height: 2; font-size: 16px;}.blank-marker {background: #E91E63; color: white; padding: 2px 8px; border-radius: 3px; font-weight: bold;}</style></head><body><h1>Mad Libs</h1><div class='story-card'><div class='title'>Restaurant Disaster</div><div class='blanks-section'><h3>Fill in the blanks:</h3><div class='blank-item'><span class='blank-label'>1.</span><span class='blank-type'>Adjective</span><input type='text' class='blank-input' placeholder='Enter adjective'></div><div class='blank-item'><span class='blank-label'>2.</span><span class='blank-type'>Adjective</span><input type='text' class='blank-input' placeholder='Enter adjective'></div><div class='blank-item'><span class='blank-label'>3.</span><span class='blank-type'>Noun</span><input type='text' class='blank-input' placeholder='Enter noun'></div><div class='blank-item'><span class='blank-label'>4.</span><span class='blank-type'>Adjective</span><input type='text' class='blank-input' placeholder='Enter adjective'></div><div class='blank-item'><span class='blank-label'>5.</span><span class='blank-type'>Animal</span><input type='text' class='blank-input' placeholder='Enter animal'></div><div class='blank-item'><span class='blank-label'>6.</span><span class='blank-type'>Verb ending in -ing</span><input type='text' class='blank-input' placeholder='Enter verb ending in -ing'></div><div class='blank-item'><span class='blank-label'>7.</span><span class='blank-type'>Number</span><input type='text' class='blank-input' placeholder='Enter number'></div><div class='blank-item'><span class='blank-label'>8.</span><span class='blank-type'>Adjective</span><input type='text' class='blank-input' placeholder='Enter adjective'></div><div class='blank-item'><span class='blank-label'>9.</span><span class='blank-type'>Plural Noun</span><input type='text' class='blank-input' placeholder='Enter plural noun'></div><div class='blank-item'><span class='blank-label'>10.</span><span class='blank-type'>Adjective</span><input type='text' class='blank-input' placeholder='Enter adjective'></div><div class='blank-item'><span class='blank-label'>11.</span><span class='blank-type'>Noun</span><input type='text' class='blank-input' placeholder='Enter noun'></div><div class='blank-item'><span class='blank-label'>12.</span><span class='blank-type'>Number</span><input type='text' class='blank-input' placeholder='Enter number'></div><div class='blank-item'><span class='blank-label'>13.</span><span class='blank-type'>Plural Noun</span><input type='text' class='blank-input' placeholder='Enter plural noun'></div></div><div class='story-template'>I went to a <span class='blank-marker'>1</span> restaurant called The <span class='blank-marker'>2</span> <span class='blank-marker'>3</span>. The waiter was a <span class='blank-marker'>4</span> <span class='blank-marker'>5</span> who kept <span class='blank-marker'>6</span> on the tables. I ordered <span class='blank-marker'>7</span> <span class='blank-marker'>8</span> <span class='blank-marker'>9</span> with a side of <span class='blank-marker'>10</span> <span class='blank-marker'>11</span>. When the bill came, it said I owed <span class='blank-marker'>12</span> <span class='blank-marker'>13</span>!</div></div></body></html> |
| image | {imageName:25d0dd78-3ad1-4f14-a30f-f8bdd8ebcc33_madlibs.png,format:.png,downloadURL:https://storage.googleapis.com/apiverve/APIData/madlibs/25d0dd78-3ad1-4f14-a30f-f8bdd8ebcc33_madlibs.png?GoogleAccessId=635500398038-compute%40developer.gserviceaccount.com&Expires=1766010349&Signature=e4owJidlQu2GZKe1GSuClCNSpOX1UQkxdweeS08IVOxkNscZGNr33BdYhNSG%2BuVIZ2XdEeAc3o2%2BY2hxP01APjgqMgCe4QvHRBgbCLPUiueHaczDJ1m1ZBI41aRaYjM8kdB7M0iYLNhdgqogXTYs9Zc%2FaRj9a6txpLz7fb2YexgG0fXhkcZuGeCb1haQlMTHL1YZbh9zJIKgHSqMhKK3jqhf0stuIDXIWkWdiK6fbP1B2aZkomqwpbx3iQKwbhca8rwFMWjUMRN5fspY%2FRtNbS7kIWaznc07VaBloITlQktm%2FMMojDc6QSanGeegRKealslcO53diZRsdLTZvB3wAQ%3D%3D,expires:1766010349930} |
Response Structure
All API responses follow a consistent structure with the following fields:
| Field | Type | Description | Example |
|---|---|---|---|
status | string | Indicates whether the request was successful ("ok") or failed ("error") | ok |
error | string | null | Contains error message if status is "error", otherwise null | null |
data | object | null | Contains the API response data if successful, otherwise null | {...} |
Learn more about response formats →
Response Data Fields
When the request is successful, the data object contains the following fields:
| Field | Type | Sample Value | Description |
|---|---|---|---|
| [ ] Array items: | array[1] | - | |
â”” title | string | - | |
â”” template | string | - | |
| [ ] Array items: | array[13] | - | |
â”” id | number | - | |
â”” type | string | - | |
â”” label | string | - | |
â”” blankCount | number | - | |
â”” category | string | - | |
count | number | - | |
category | string | - | |
html | string | - | |
image | object | - | |
â”” imageName | string | - | |
â”” format | string | - | |
â”” downloadURL | string | - | |
â”” expires | number | - |
Headers
Only X-API-Key is required. Optional headers include Accept for response format negotiation (JSON, XML, or YAML), User-Agent, and X-Request-ID for request tracing. See all request headers →
GraphQL AccessALPHA
Access Mad Libs Generator through GraphQL to combine it with other API calls in a single request. Query only the mad libs generator data you need with precise field selection, and orchestrate complex data fetching workflows.
Credit Cost: Each API called in your GraphQL query consumes its standard credit cost.
POST https://api.apiverve.com/v1/graphqlquery {
madlibs(
input: {
category: "funny"
count: 1
}
) {
stories
count
category
html
image {
imageName
format
downloadURL
expires
}
}
}Note: Authentication is handled via the x-api-key header in your GraphQL request, not as a query parameter.
CORS Support
The Mad Libs Generator API accepts cross-origin requests from any origin, so it can be called directly from browser-based applications without a proxy. See CORS support →
Rate Limiting
Mad Libs Generator requests are throttled per minute on the Free plan and unthrottled on paid plans. Exceeding the limit returns 429 Too Many Requests; rate-limit usage is reported in the X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset response headers. See per-plan limits and best practices →
Error Codes
The Mad Libs Generator API uses standard HTTP status codes — 200 on success, 400 for invalid parameters, 401 for missing or invalid keys, 403 for insufficient credits, 429 for rate-limit exhaustion, and 500/503 for server-side issues. Each error response includes an X-Request-ID header you can quote when contacting support. See full error handling guide →
SDKs for Mad Libs Generator
Official Mad Libs Generator packages on npm, PyPI, NuGet, and JitPack — plus a Postman collection and an OpenAPI spec. See the SDK guide →
No-Code Integrations
Mad Libs Generator works with Zapier, Make, Pipedream, n8n, and Power Automate using the same API key. See setup guides →
Frequently Asked Questions
How do I get an API key for Mad Libs Generator?
How many credits does Mad Libs Generator cost?
Each successful Mad Libs Generator API call consumes credits based on plan tier. Check the pricing section above for the exact credit cost. Failed requests and errors don't consume credits, so you only pay for successful mad libs generator lookups.
Can I use Mad Libs Generator in production?
The free plan is for testing and development only. For production use of Mad Libs Generator, upgrade to a paid plan (Starter, Pro, or Mega) which includes commercial use rights, no attribution requirements, and guaranteed uptime SLAs. All paid plans are production-ready.
Can I use Mad Libs Generator from a browser?
What happens if I exceed my Mad Libs Generator credit limit?
When you reach your monthly credit limit, Mad Libs Generator API requests will return an error until you upgrade your plan or wait for the next billing cycle. You'll receive notifications at 80% and 95% usage to give you time to upgrade if needed.








