SWURPG

For developers

Integrations & Data

Build a SWURPG VTT extension, companion app, or anything else? Every catalog the site uses is mirrored to stable JSON endpoints under swurpg.com/data/*.json. Free to use under CC BY 4.0 — just credit SWURPG.

License

The original SWURPG content — rules, mechanics, stat blocks, descriptive text, and data structures — is published under the Creative Commons Attribution 4.0 International (CC BY 4.0) license. You can copy, build on, and redistribute it — including for non-commercial fan tools and commercial-friendly tooling — as long as you credit SWURPG (swurpg.com) somewhere visible.

Star Wars IP carve-out. Star Wars, character names, location names, ship names, and franchise IP belong to Lucasfilm Ltd. / The Walt Disney Company. Those trademarks are not ours to license to you. Using SWURPG content in derivative works is at your own risk under Disney's fan-content policies — same risk model SWURPG itself operates under. See the fan-made disclaimer for the full statement.

Available data

Every catalog below is a single JSON file, regenerated on every site deploy. Click a filename to view the raw data. The schemas evolve additively — new fields and new entries are normal; breaking changes are rare and called out in the Changelog with advance notice.

FileCatalogEntriesDescription
/data/species.jsonPlayable species94Ability modifiers, traits, size, speed, languages, lore — every playable species in the catalog.
/data/classes.jsonClasses & subclasses21Base classes + advanced subclasses, level-by-level features, proficiencies, hit dice, starting gear.
/data/force-powers.jsonForce powers63Cost, activation, range, prerequisites, full effect text, category (Energy/Kinetic/Mind/Sense/Lightsaber Forms).
/data/weapons.jsonWeapons224Damage, range, properties (finesse/two-handed/stun/etc.), weapon types, weight, base cost.
/data/armor.jsonArmor76AC bonus, max DEX, speed limits, strength requirements, category (Light/Medium/Heavy).
/data/gear.jsonGear61Tools, kits, comlinks, datapads, restraints, survival gear, consumables, exploration kits.
/data/medpacs.jsonMedpacs5Per-tier Treat Injury DCs, healing dice, base cost, weight.
/data/weapon-upgrades.jsonWeapon upgrades82Lightsaber crystals, emitters, grips, ranged-weapon mods. Effect deltas, slot compatibility.
/data/armor-upgrades.jsonArmor upgrades34Armor overlays + underlays. AC / speed / property deltas, slot compatibility.
/data/droid-upgrades.jsonDroid chassis upgrades61Plating, armaments, utility chassis upgrades for droid characters.
/data/bio-implants.jsonBio-implants34Cybernetics, prosthetics, biomods for organic characters across Sensory / Neural / Physical slots.
/data/enemies.jsonMonsters & NPC stat blocks86GM-side enemy stat blocks across major factions: AC/HP/saves/abilities, traits, actions, tactical notes, adventure hooks.
/data/starships.jsonStarship chassis41Playable + enemy starships. HP, shields, SIB, handling, hardpoints, default weapon loadout, hyperdrive class, era.
/data/starship-weapons.jsonStarship weapons13Mountable ship weapons: damage, mount class, accuracy modifier, range, ammo (for missiles).
/data/starship-upgrades.jsonStarship upgrades48Ship modifications by category (shields, hull, engines, sensors, etc.). Effect deltas + cost.
/data/starship-traits.jsonStarship traits12Narrative ship traits (Jury-Rigged, Hot-Shot, Salvaged, etc.) and their mechanical effects.
/data/asi-alternatives.jsonASI alternativesAlt-trait choices available in place of an Ability Score Improvement at levels 4, 8, 12, 16, 20.
/data/languages.jsonLanguagesGalactic languages with descriptive lore and typical speakers.

Quick start

A 5-line fetch is usually enough to get going:

// Pull every monster stat block
const res = await fetch("https://swurpg.com/data/enemies.json");
const monsters = await res.json();
// monsters is an array of stat-block objects — name, faction, ac, hp,
// abilities, saves, traits[], actions[], tactical_notes, hooks[], etc.
console.log(`Loaded ${monsters.length} monsters`);

Static JSON, CORS-open, served from Vercel's CDN. No API key, no rate limit, no auth flow.

Versioning & stability

The URLs at /data/*.json are the stable integration contract. The repository layout, branch names, and file paths inside the GitHub repo can move during refactors; the public URLs stay put.

Schemas evolve under these rules:

  • Additive changes— new fields on existing entries, new entries, new optional properties — happen continuously and shouldn't break a well-written integration that ignores unknown keys.
  • Breaking changes— renaming a field, dropping a field, changing a type — are rare and announced in the Changelog with advance notice. If you're actively integrating and want a direct heads-up before a breaking change lands, drop into the Discord.

How to credit SWURPG

Any of the following counts as visible attribution under CC BY 4.0:

  • An About / Credits screen with a line like: “Game data from SWURPG (swurpg.com), CC BY 4.0.”
  • A linked footer or splash-screen credit on your tool's landing page.
  • For a VTT extension: a credit in the extension's store/listing description and inside the extension's settings or help screen.

You don't need to ask permission first — just credit visibly and ship. If you'd like SWURPG to link back to your integration in the community, drop a note in the Discord.

Frequently asked questions

What can I use this data for?
Anything non-commercial that helps players or GMs play SWURPG: VTT extensions (Owlbear Rodeo, Roll20, Foundry), companion apps, character-builder mods, dice rollers, content explorers, AI assistants, encounter generators. Commercial use is restricted by the underlying Star Wars trademarks, which SWURPG doesn't own and can't license to you.
What license is the data under?
The original SWURPG content (rules, mechanics, stat blocks, descriptive text, data structures) is published under Creative Commons Attribution 4.0 International (CC BY 4.0). You can copy, redistribute, remix, and build on it — including for commercial-friendly fan tooling — as long as you credit SWURPG (swurpg.com). Star Wars trademarks, character names, location names, and franchise IP belong to Lucasfilm Ltd. / The Walt Disney Company and are not ours to license to you; using SWURPG content in derivative works is at your own risk under Disney's fan-content policies.
Are these URLs stable? Can I cache them?
Yes. The /data/*.json URLs are intended as stable integration endpoints. Files are regenerated on every site deploy from the canonical catalogs; their paths and JSON shapes are versioned via the live-data approach — additive changes are normal, breaking shape changes are called out in /changelog. Cache aggressively if you want; the files don't change more than a few times a week. Hot-reload integrations should refresh once per session at most.
Will the JSON shape ever change?
Additive changes (new fields on existing entries, new entries, new optional properties) happen regularly and shouldn't break a well-written integration that ignores unknown keys. Breaking changes (renaming a field, dropping a field, changing a type) are rare and announced in /changelog with a heads-up window before they ship. If you're integrating and want a heads-up before a breaking change lands, hop in the Discord and say hi — I'll ping integrators directly.
Can I get a webhook or push notification when data changes?
Not currently. The Changelog page is the canonical update feed; the Discord #updates channel auto-posts the same entries. For now, polling /data/*.json once per session (or watching the changelog page / Discord channel) is the recommended pattern. If demand grows, a versioned manifest at /data/index.json is the natural next step — open to it if you'd find it useful.
Why not point me at the GitHub repo?
The GitHub repository is private, and even when it was public, raw GitHub URLs aren't a stable integration contract — repo layout, branch names, and file paths can move during refactors. The /data/*.json mirror under swurpg.com is the integration surface; it stays put even if the repo internals change.

Building something?

Drop a note in Discord — happy to help with schema questions, give a heads-up before breaking changes, and link your project from the SWURPG community channels when it ships.

Join the SWURPG Discord ↗