API · /dndencounter-api

D&D Encounter API

healthy 3,707 Subscribers

Dungeons & Dragons 5th-edition encounter-building maths as an API, computed locally and deterministically — the XP-budget and difficulty numbers a Dungeon Master balances a fight with. The budget endpoint sums the per-character XP thresholds from the DMG across the party — by party size and level, or a list of mixed levels — to give the easy, medium, hard and deadly budget for one encounter (a party of four 5th-level characters has thresholds of 1,000 / 2,000 / 3,000 / 4,400 XP), plus the total adventuring-day budget. The difficulty endpoint rates an encounter: it sums the monsters' XP, multiplies by the encounter multiplier for the number of monsters (×1.5 for two, ×2 for three to six, up to ×4 for fifteen or more), and compares the adjusted XP to the party thresholds — four 450-XP monsters against that party come to 3,600 adjusted XP, a hard fight. The carry endpoint gives the carrying capacity (Strength × 15, scaled by size), push/drag/lift and the encumbrance thresholds. Everything is computed locally and deterministically, so it is instant and private. Ideal for tabletop, virtual-tabletop, DM-tool and TTRPG app developers, encounter-builder and balance tools, and game-master education. Pure local computation — no key, no third-party service, instant. Uses the DMG tables. Live, nothing stored. 3 compute endpoints. For monster stats and spells use a D&D SRD data API.

api.oanor.com/dndencounter-api
Get an API key Try in playground → Contact provider

Machine-readable spec so AI agents can integrate this API.

/api/dndencounter-api/openapi.json
/api/dndencounter-api/llms.txt

Discovery: GET /api/index.json lists every API.

API health

healthy
Uptime
100.00%
Server probes · 24h
Avg latency
85 ms
Server probes · 24h
Subscribers
3,707
active
Total calls
4
last 7 days
status Full status page → · 8 probes/24h

Pricing

Pick a tier — billed monthly, cancel anytime.

Free

Free

  • 6,650 calls / month
  • 2 requests / second
  • Hard cap (429 above quota, no overage)
  • 6,650 calls/month
  • 2 req/sec
  • XP budget + difficulty + carry
  • No credit card
Sign in to subscribe

Starter

€4.20 /month

  • 59,500 calls / month
  • 6 requests / second
  • Hard cap (429 above quota, no overage)
  • 59,500 calls/month
  • 6 req/sec
  • Mixed parties, multipliers, encumbrance
  • Email support
Sign in to subscribe

Pro

€11.70 /month

  • 245,000 calls / month
  • 15 requests / second
  • Hard cap (429 above quota, no overage)
  • 245,000 calls/month
  • 15 req/sec
  • DM-tool & VTT pipelines
  • Priority support
Sign in to subscribe

Mega

€37.50 /month

  • 1,375,000 calls / month
  • 40 requests / second
  • Hard cap (429 above quota, no overage)
  • 1,375,000 calls/month
  • 40 req/sec
  • Platform scale
  • Dedicated SLA
Sign in to subscribe

Built by

Related APIs

Other APIs with overlapping tags.

D&D 5e API

The complete Dungeons & Dragons 5th-edition System Reference Document as an API — spells, monsters, classes, subclasses, races, backgrounds, equipment, magic items, conditions, features, feats, skills and the full rules reference. Look up a spell by name (e.g. Fireball → 3rd-level evocation, 150 ft, 8d6 fire) or a monster statblock (e.g. Adult Red Dragon → CR 17, AC 19, 256 HP, legendary actions), list and filter any resource type (spells by level or school, monsters by challenge rating), or fetch full detail for any of the 24 SRD categories. Backed by the open dnd5eapi.co dataset. Ideal for character builders, virtual tabletops, encounter and spell-card generators, Discord bots and homebrew tools.

api.oanor.com/dnd-api

Dice Probability API

Tabletop dice-probability maths as an API, computed locally and deterministically and exactly — the odds behind the rolls, not the rolls themselves. The advantage endpoint gives the D&D-style chances of beating a target on a d20 (or any die) rolling normally, with advantage (roll twice, keep the higher) or with disadvantage (keep the lower): needing an 11+ is 50 % normally, 75 % with advantage and 25 % with disadvantage, and it reports the average roll — advantage lifts a d20 from 10.5 to about 13.8. The pool endpoint handles success-counting systems (World of Darkness, Shadowrun): for a pool of dice that succeed on a face at or above a threshold it gives the chance per die, the expected number of successes and the exact binomial probability of getting exactly, or at least, a target number — six d10s succeeding on 7+ average 2.4 successes with a 45.6 % chance of three or more. The exploding endpoint gives the mean of an exploding ("acing", open-ended) die that re-rolls and adds on its maximum face — a d6 averages 4.2 instead of 3.5. Everything is computed locally and deterministically, so it is instant and private. Ideal for tabletop, virtual-tabletop, game-design and TTRPG app developers, odds-and-probability helpers, and game-master tools. Pure local computation — no key, no third-party service, instant. Exact maths, no simulation. Live, nothing stored. 3 compute endpoints. For random rolls use a dice-roller API.

api.oanor.com/dicepool-api

Reptile Husbandry API

Reptile-husbandry maths as an API, computed locally and deterministically — the keeper numbers behind a healthy vivarium, so the setup is right before the animal moves in. The enclosure endpoint turns an animal length and its habit into the minimum floor length, width and height: terrestrial snakes want a floor at least as long as the snake (a 48-inch corn snake → a 48 × 24 × 24 inch minimum, eight square feet of floor), arboreal species trade floor for height (an 18-inch chameleon → 27 × 18 × 36 inches, tall), and ground lizards and tortoises need far more floor than their body length. The uvb endpoint gives the UV-B target by Ferguson zone — the 1-to-4 classification from Baines et al. (2016) of how much sun a species basks in — returning the mean and basking UV-index ranges (zone 3 open baskers want a basking UVI of 2.9–7.4), and, if you pass a lamp UVI measured at a reference distance, an inverse-square estimate of the mounting distance for the right basking UVI. The feeding endpoint sizes prey from body weight and life stage: a meal of roughly 10–15 % of body weight, no wider than the animal, on an interval that lengthens with age — a 500 g adult snake takes a 40–60 g prey item every fortnight. Everything is computed locally and deterministically, so it is instant and private. Ideal for reptile-keeper and herpetoculture apps, pet-store and breeder tools, vivarium-planning calculators, and care-sheet sites. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 compute endpoints. Educational husbandry estimates — not veterinary advice; research your exact species.

api.oanor.com/reptile-api

Garden Pond API

Garden and koi-pond maths as an API, computed locally and deterministically — the numbers behind a backyard water feature, so you do not have to guess at the hose. The volume endpoint turns length, width and average depth into the water volume in cubic feet, US gallons and litres, applying a shape factor (rectangular 1.0, oval or round 0.79, irregular 0.85) because a liner pond never holds the full bounding box: an 8 × 6 ft pond two feet deep is about 96 cubic feet, or 718 gallons. The liner endpoint sizes the flexible liner to fit a pond — length equals the pond length plus twice the maximum depth plus twice the overlap to anchor under the edging stones (same for width), so that same 8 × 6 pond at two feet deep with a one-foot overlap needs a 14 × 12 ft liner and matching underlayment. The stock endpoint turns a water volume into a safe fish load and the pump you need: roughly one koi per 250 gallons (they grow large and dirty) or one goldfish per 20, plus the pump flow in gallons per hour to turn the whole pond over at least once an hour for koi — 718 gallons holds about two koi and wants a ~720 GPH pump before head-height losses. Everything is computed locally and deterministically, so it is instant and private. Ideal for landscaping and pond-installer tools, garden-design and home-improvement apps, koi and water-garden hobbyist sites, and aquascaping calculators. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 compute endpoints. For pool chemistry use a pool API; for indoor fish tanks use an aquarium API.

api.oanor.com/pond-api

Frequently asked questions

Quick answers about pricing, quotas, and integration.

How do I get an API key for D&D Encounter API?
Sign up for free at oanor.com, generate an API key from the developer dashboard, and call D&D Encounter API with the x-oanor-key header. No credit card needed for the free tier.
What's the rate limit for D&D Encounter API?
Free tier allows 1 request per second. Paid plans scale up to 50 requests per second on the Mega tier. Hard limits return HTTP 429 above the quota — no surprise overage charges.
How much does D&D Encounter API cost?
D&D Encounter API has a free tier with 100 calls / month. Paid plans start at €4.20 / month with higher quotas and faster rate limits.
Can I cancel my subscription anytime?
Yes. Plans are billed monthly and you can cancel anytime from your billing dashboard. No long-term contracts and no cancellation fee.
Is D&D Encounter API GDPR-compliant?
All requests to D&D Encounter API go through our EU-based gateway. Your upstream API key never leaves our server and no personal data is shared with the upstream provider beyond the request you send.

Pick an endpoint from the list on the left to see its details and try it.

Code snippets

Sign up to get an API key, then call any path under your slug.

curl https://api.oanor.com/dndencounter-api/SOME_PATH \
  -H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/dndencounter-api/SOME_PATH", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/dndencounter-api/SOME_PATH");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
$response = curl_exec($ch);
import requests
r = requests.get(
    "https://api.oanor.com/dndencounter-api/SOME_PATH",
    headers={"x-oanor-key": "oanor_test_..."},
)
print(r.json())

Ratings

Sign in to rate.

No reviews yet.

Discussion

Ask questions, share usage tips, get answers from the provider and other developers. Public — anyone can read.

Sign in to start a thread or reply.

Sign in

New thread

/ 4000

📌 Pinned 🔒 Locked

·

· ·

/ 4000

🔒 This thread is locked — no new replies.

  • No threads yet — start the discussion.

Support

Private 1:1 support with the provider — billing questions, integration issues, account problems. Only you and the provider team can see these threads.

Sign in to open a support ticket.

Sign in

Open new ticket

Describe what you need help with. The provider team gets an email and replies on the ticket page.

  • No tickets yet for this API.

Subscription active — calls can start immediately.

Send your first request —

Subscription active — copy a snippet and fire off your first call.