API Documentation – Integration Guide | dice83 

API & Documentation

The URL is the interface. Every tool on dice83 is configured entirely through the URL path. Construct a URL, load the page, your browser generates the result.

The URL Model

dice83 has no traditional REST API that returns JSON. Every URL serves a complete HTML page with the requested tool pre-configured. Your browser then generates the random result locally using the Web Cryptography API. This means there is no server-side computation and no way to "call" dice83 for a random value over HTTP.

The power of this model: every URL is a self-contained, shareable, bookmarkable tool configuration. Construct the right path, and the tool loads with your exact parameters. Use it in links, worksheets, presentations, iframes, or QR codes.

URL Anatomy

https://dice83.com / {lang} / {tool} / {params...}
https://dice83.com / de / integer / 5 / 1 / 100
^^ ^^^^^^^ ^ ^ ^^^
lang tool count min max

The language prefix is optional. Omit it for English. The tool name selects the generator. The parameters are slash-separated values that configure the tool. Parameters absent from the URL use sensible defaults.

Quick Examples

Construct these URLs to get a pre-configured tool page instantly:

/coin/10 Flip 10 coins simultaneously
/integer/1/1000 Random integer from 1 to 1000
/integer/5/-50/50 Five random integers from -50 to 50
/password/24 24-character secure password
/4d6kh3 Roll 4d6, keep highest 3 (ability score)
/pattern/LLL-DDDD Random string like QXR-4829
/color/5/rgb Five random colors in RGB format
/groups/24/4 Split 24 participants into 4 teams
/de/2d6 Roll 2d6 with German interface
/100 Random number from 1 to 100

Route Reference

Every route listed below accepts an optional 2-letter language prefix. Parameters in italics are path segments. Ranges use slash separators, enabling negative values.

Core & Decision Tools
/coin Flip one coin
/coin/count Flip COUNT coins (1-1000)
/yes-no Random yes or no
/true-false Random boolean
/left-right Random direction
/rps Rock, paper, or scissors
/dice-face Single Unicode die face ⚀-⚅
Security
/password/length Random password (default 16, max 256)
/diceware/words Passphrase from EFF wordlist (default 6, max 20)
/pin/length Numeric PIN (default 4, max 20)
Number Generators
/integer/min/max Random integer in range (supports negative)
/integer/count/min/max Multiple integers in range
/numbers/count/min/max Unique non-repeating integers
/sequence/min/max Shuffle range into random order
/decimal/count/decimals Random fractions 0 to 1
/percent/decimals Random percentage 0% to 100%
/ratio/parts Random proportions summing to 100
/prime/min/max Random prime number in range
/fibonacci Random Fibonacci number
/binary/bits Random bitstring (max 64)
/bytes/count/format Raw bytes in hex, base64, or bin
/even/min/max Random even integer (supports negative)
/odd/min/max Random odd integer (supports negative)
Strings & Characters
/generate/length Alphanumeric string (max 256)
/uuid UUID v4 per RFC 4122
/unicode/count Random printable Unicode characters
/letter/count Random letters (language-sensitive)
/ascii Random printable ASCII (33-126)
/emoji/count Random emojis
/roman/min/max Random Roman numeral
/pattern/template Custom string from template (L, l, D, H)
Time & Date
/calendar Visual year grid with random date
/date/from/to Random date in year range
/time/min/max Random time in hour range
/duration/min/max Random duration in minutes
/timestamp/year Random Unix timestamp
/week Random ISO week 1-52
/month Random month (localized)
/weekday Random day of the week (localized)
/season Random season
International Data (Browser Intl API)
/timezone Random IANA timezone + UTC offset
/currency Random ISO 4217 currency
/language Random world language
/country/count Random countries with flags
Visual & Color
/color/count/format Random colors (hex, rgb, hsl)
/gradient Random two-color CSS gradient
/palette/harmony Harmonious palette (complement, analogous, triad, monochrome)
/pixel/size/colors Random pixel art grid
/avatar Geometric identicon SVG
/wavelength Random visible spectrum wavelength
Organizational
/order/count Random turn order for COUNT participants
/pairs/count Random pairing of COUNT participants
/groups/count/m Split COUNT into M random groups
/bracket/count Tournament bracket seeding
/grid/rows/cols Random cell from grid
/winner/count Pick one from COUNT with visual reveal
/countdown/min/max Random countdown timer (minutes)
Datasets
/element Random periodic table element
/planet Random solar system planet
/note Random musical note (chromatic)
/zodiac/system Random zodiac sign (western or chinese)
/tarot/count Draw from 78-card tarot deck
/rune Random Elder Futhark rune
/iching Random I Ching hexagram
/nato Random NATO phonetic code
Distributions
/gaussian/mean/stdev Normal (bell curve) distribution
/weighted/w1/w2/w3... Weighted selection (up to 5 weights)
Generative Art
/blob/count Organic SVG blob shape
/wave/count SVG wave section divider
/noise/size Procedural noise texture
/mandala/count Symmetrical radial pattern
/spirograph Hypotrochoid curve
/voronoi/count Voronoi tessellation
/delaunay/count Delaunay triangulation
/terrain/size Topographic contour map
/lsystem/count L-system branching structure
/halftone/count Halftone dot pattern
/moire Moiré interference pattern
/guilloche Mathematical line mesh
/lines/count Noise-displaced parallel lines
/stipple/count Weighted dot scatter
Design Tools
/proportion Random classical ratio (golden, root-2, etc.)
/rating/count Random star ratings (half-star precision)
/checker/cols/rows Checkerboard with random colors
/matrix/cols/rows Asymmetric grid divisions
Dynamic Routes
/NdS Dice expression: /d20, /2d6, /4d6kh3, /d8+5
/N Quick random number 1 to N: /100, /20
/N/M Two numbers: 1-N and 1-M: /100/500
/N/M/K Three numbers: /100/200/300

Dice Expression Grammar

Dice expressions are parsed from the URL path. The full grammar:

# Format [N]d<SIDES>[kh|kl<KEEP>][!][+|-<MOD>] # Examples d6 # one six-sided die 2d6 # two six-sided dice, summed 4d6kh3 # roll 4d6, keep highest 3 2d20kl1 # roll 2d20, keep lowest 1 d6! # exploding d6 (reroll on max, add) 2d6+3 # 2d6 plus 3 d20-2 # d20 minus 2 4d6kh3+2 # all combined

Parameter Limits

N (dice count): 1 to 100. SIDES: 2 to 1,000,000. KEEP: 1 to N. MOD: -10,000 to +10,000.

Invalid expressions silently fall back to 1d6.

Language Prefix

Every route accepts an optional 2-letter ISO 639-1 prefix that sets the interface language. English is the default when no prefix is present.

enzhjakohiesarfritptbnruuridtrvi

The language prefix affects UI labels, localized output (month names, weekday names, country names via the browser Intl API), and SEO tags. It never affects the randomness engine or parameter limits.

/ko/letter Random Korean letter
/ja/month Random month name in Japanese
/de/integer/1/100 German interface, integer 1-100
/fr/zodiac/western French interface, western zodiac

Parameter Rules

Slash-Separated Ranges

All range parameters use / separators in the URL. This enables negative values: /integer/-10/10. Ranges are normalized so the smaller value comes first. /integer/100/5 silently becomes /integer/5/100.

Defaults

Every parameter has a sensible default. Bare routes are valid: /integer defaults to 1-100, /password defaults to 16 characters, /percent defaults to 0 decimal places. Omitted parameters never produce errors.

Clamping

All parameters are sanitized, type-cast, and clamped to safe ranges. Values exceeding limits are silently clamped. Unknown parameters are ignored. No URL input produces an error page for whitelisted routes.

Query Strings Discarded

The server receives only path-based parameters. Query strings appended to any URL are silently discarded during routing. /coin?count=50 behaves identically to /coin. The URL path is the complete and only interface.

Integration

Iframe Embedding

Embed any tool in an iframe. The tool renders fully within the frame and generates results using the parent page visitor's browser entropy.

<iframe src="https://dice83.com/coin/5" width="100%" height="600"></iframe>

Direct Links

Link to any pre-configured tool. Recipients see the exact configuration you specify and generate their own independent results.

<a href="https://dice83.com/integer/5/1/100">Generate 5 numbers</a>
<a href="https://dice83.com/groups/24/4">Make 4 teams of 6</a>
<a href="https://dice83.com/4d6kh3">Roll ability scores</a>

Worksheets & Presentations

Print URLs directly on classroom worksheets or presentation slides. Students type the path into any browser. Each student generates independent results. URLs like dice83.com/coin/100 are short enough to type by hand.

Design excellence, every day.

Jury-selected work from the A' Design Award, presented fresh each morning.