Need to flip coins in your application? This guide covers everything you need to know about coin flipping via API, including probability, multiple flips, and implementation examples for decision-making and games.
Coin Flip Basics
A coin flip is the simplest form of random selection with two equally likely outcomes: heads or tails. It's a fundamental tool for making fair binary decisions when no other factors should influence the choice.
Digital coin flips use cryptographically secure random number generation to ensure true 50/50 probability without the physical biases of real coins.
Probability and Statistics
Understanding coin flip probability:
Single Flip
Each flip has exactly 50% chance of heads and 50% chance of tails. Previous results don't affect future flips (gambler's fallacy).
Multiple Flips
The probability of getting all heads in n flips is (1/2)^n. For 5 flips, that's 1/32 or about 3.1%.
Streaks
In 20 flips, there's an 80% chance of getting at least one streak of 4 consecutive same results. Streaks are normal, not evidence of bias.
Law of Large Numbers
Over many flips, the proportion of heads approaches 50%. But this doesn't mean short-term balance is guaranteed.
Using the Coin Flip API
TinyFn provides a simple endpoint to flip coins:
GET https://api.tinyfn.io/v1/random/coin?flips=5
Headers: X-API-Key: your-api-key
{
"results": ["heads", "tails", "heads", "heads", "tails"],
"flips": 5,
"heads_count": 3,
"tails_count": 2,
"heads_percentage": 60,
"tails_percentage": 40
}
Parameters
| Parameter | Type | Description |
|---|---|---|
flips |
integer | Number of coin flips (default: 1, max: 1000) |
format |
string | Result format: words (heads/tails), short (H/T), numeric (1/0) |
Code Examples
JavaScript / Node.js
const response = await fetch(
'https://api.tinyfn.io/v1/random/coin?flips=5',
{ headers: { 'X-API-Key': 'your-api-key' } }
);
const data = await response.json();
console.log(`Results: ${data.results.join(', ')}`); // Results: heads, tails, heads, heads, tails
Python
import requests
response = requests.get(
'https://api.tinyfn.io/v1/random/coin',
params={'flips': 5},
headers={'X-API-Key': 'your-api-key'}
)
data = response.json()
print(f"Heads: {data['heads_count']}, Tails: {data['tails_count']}")
cURL
curl "https://api.tinyfn.io/v1/random/coin?flips=5" \
-H "X-API-Key: your-api-key"
Common Use Cases
- Decision Making: Fair binary decisions between two options
- Game Development: Kickoff decisions, random events
- A/B Testing: Random user assignment to test groups
- Tiebreakers: Resolving ties in competitions
- Statistics Education: Demonstrating probability concepts
Best Practices
- Show the result clearly: Use animations or clear visuals
- Explain fairness: Users should trust the randomness
- Keep history: Let users see past flips in some applications
- Support batch flips: Multiple flips for probability experiments
Use via MCP
Your AI agent can call this tool directly via Model Context Protocol — no HTTP code needed. Add TinyFn to Claude Desktop, Cursor, or any MCP client:
{
"mcpServers": {
"tinyfn-random": {
"url": "https://api.tinyfn.io/mcp/random/",
"headers": {
"X-API-Key": "your-api-key"
}
}
}
}
See all random tools available via MCP in our Random MCP Tools for AI Agents guide.