Truth or Dare API

The Truth Or Dare API provides access to a large collection of truths, dares and party challenges across multiple difficulty levels. Perfect for Discord bots, social games, party applications and community events.

Base Endpoint
/api/truth-or-dare/[action]/[object]
Part Description
action The operation to perform.
object Optional value used by the action.
Difficulty Levels
Level Name Description
0 Easy Family friendly and beginner challenges.
1 Medium More personal questions and engaging dares.
2 Hard Challenging truths and dares.
3 Lewd Flirty and suggestive content.
4 NSFW Adult-oriented content.
5 NSFW+ Most extreme difficulty level.
Available Endpoints
Endpoint Description
/api/truth-or-dare List challenges.
/api/truth-or-dare/random Random truth or dare.
/api/truth-or-dare/truth Random truth question.
/api/truth-or-dare/dare Random dare challenge.
/api/truth-or-dare/spin Randomly chooses either truth or dare.
/api/truth-or-dare/id/{id} Lookup by ID.
/api/truth-or-dare/type/{type} Filter by truth or dare.
/api/truth-or-dare/level/{level} Filter by difficulty level.
/api/truth-or-dare/difficulties List available difficulties.
/api/truth-or-dare/search/{query} Search challenges.
/api/truth-or-dare/count Database statistics.
Query Parameters
Parameter Example Description
level 2 Filter by difficulty level.
type truth Filter by challenge type.
limit 25 Maximum results returned.
active true Only return active challenges.
Random Challenge Examples
GET /api/truth-or-dare/random
GET /api/truth-or-dare/random?level=0
GET /api/truth-or-dare/random?level=5
Example Response:
{
    "id": 124,
    "type": "truth",
    "difficulty": "Medium",
    "level": 1,
    "text": "What is your biggest irrational fear?"
}
Truth Examples
GET /api/truth-or-dare/truth
GET /api/truth-or-dare/truth?level=0
GET /api/truth-or-dare/truth?level=2
Example Response:
{
    "id": 75,
    "type": "truth",
    "difficulty": "Hard",
    "level": 2,
    "text": "What secret have you never told anyone?"
}
Dare Examples
GET /api/truth-or-dare/dare
GET /api/truth-or-dare/dare?level=1
GET /api/truth-or-dare/dare?level=3
Example Response:
{
    "id": 201,
    "type": "dare",
    "difficulty": "Medium",
    "level": 1,
    "text": "Speak in a pirate accent for the next 3 turns.",
    "turns": 3,
    "time": null
}
Spin Examples
GET /api/truth-or-dare/spin
GET /api/truth-or-dare/spin?level=2
Example Response:
{
    "choice": "Dare",
    "challenge": {
        "id": 444,
        "difficulty": "Hard",
        "text": "Attempt to sing your favourite song.",
        "turns": null,
        "time": 60
    }
}
Lookup Examples
GET /api/truth-or-dare/id/42
Example Response:
{
    "id": 42,
    "type": "truth",
    "difficulty": "Easy",
    "level": 0,
    "text": "What is your favourite food?"
}
Difficulty Examples
GET /api/truth-or-dare/level/0
GET /api/truth-or-dare/level/2
GET /api/truth-or-dare/level/5
Example Response:
[
    {
        "id": 42,
        "difficulty": "Easy",
        "type": "truth",
        "text": "What is your favourite colour?"
    }
]
Type Examples
GET /api/truth-or-dare/type/truth
GET /api/truth-or-dare/type/dare
Difficulty List
GET /api/truth-or-dare/difficulties
Example Response:
[
    {
        "level": 0,
        "name": "Easy",
        "count": 350
    },
    {
        "level": 1,
        "name": "Medium",
        "count": 420
    }
]
Search Examples
GET /api/truth-or-dare/search/embarrassing
GET /api/truth-or-dare/search/sing
GET /api/truth-or-dare/search/crush
Statistics
GET /api/truth-or-dare/count
Example Response:
{
    "total": 4500,
    "truths": 2250,
    "dares": 2250,
    "easy": 750,
    "medium": 750,
    "hard": 750,
    "lewd": 750,
    "nsfw": 750,
    "nsfw_plus": 750,
    "active": 4478
}
Common Discord Bot Use Cases
Feature Endpoint
/truth /api/truth-or-dare/truth
/dare /api/truth-or-dare/dare
/truthordare /api/truth-or-dare/spin
Party Games /api/truth-or-dare/random
Family Friendly Mode ?level=0
Adult Only Mode ?level=4 or ?level=5

Authentication & Rate Limits

All Jarvis APIs require a valid API token. Tokens are issued through the Jarvis Developer Portal and are associated with an account plan which determines access levels and request limits.

Authentication

Every request must include a valid API token. Requests made without a token or with an invalid token will be rejected.

Authorization Header (Recommended)
Authorization: YOUR_API_TOKEN
X-API-Token Header
X-API-Token: YOUR_API_TOKEN
Query String
GET /api/flags/random?token=YOUR_API_TOKEN
For security reasons, the Authorization header method is strongly recommended. Avoid exposing API tokens in URLs where possible.
Example Requests
cURL
curl \
-H "Authorization: YOUR_API_TOKEN" \
https://jarvisbot.uk/api/flags/random
JavaScript (Fetch)
fetch("https://jarvisbot.uk/api/jokes/random", {
    headers: {
        "Authorization": "YOUR_API_TOKEN"
    }
})
.then(r => r.json())
.then(console.log);
PHP
$response = file_get_contents(
    "https://jarvisbot.uk/api/questions/random",
    false,
    stream_context_create([
        'http' => [
            'header' => [
                'Authorization: YOUR_API_TOKEN'
            ]
        ]
    ])
);

$data = json_decode($response, true);
Account Plans
Plan Daily Requests API Access
Free 100 Requests Basic APIs
Premium 10,000 Requests All APIs
Enterprise Unlimited All APIs + Priority Support
Rate Limiting

API usage is automatically monitored based on your account type. Once your limit is reached, requests will be temporarily blocked until your allowance resets.

Plan Limit Window
Free 100 Requests 24 Hours
Premium 10,000 Requests 24 Hours
Enterprise Unlimited No Restriction
Authentication Error Response
{
    "success": false,
    "error": "invalidToken",
    "msg": "API token required"
}
Invalid Token Response
{
    "success": false,
    "error": "invalidToken",
    "msg": "Invalid API token"
}
Rate Limit Response
{
    "success": false,
    "error": "rateLimit",
    "msg": "API limit exceeded",
    "plan": "free",
    "limit": 100
}
Best Practices
  • Store API tokens securely and never expose them publicly.
  • Use the Authorization header whenever possible.
  • Cache responses where appropriate to reduce API calls.
  • Monitor your daily usage to avoid rate limiting.
  • Upgrade your account if your application requires higher throughput.
Supported APIs
  • Flags API
  • Dictionary API
  • Questions API
  • Riddles API
  • Jokes API
  • Pickup Lines API
  • Truth Or Dare API
  • Harry Potter Spells API
  • Future Jarvis APIs
Need additional capacity or custom limits? Contact the Jarvis team to discuss Premium and Enterprise API access.