Palworld API
PalToolkit publishes its Palworld 1.0.5 data as a free JSON API: no key, no sign-up, CORS enabled. Fetch https://paltoolkit.com/api/v1/pals/anubis.json for one Pal or /api/v1/breeding/matrix.json to compute any breeding pair locally. Credit "Data by PalToolkit (paltoolkit.com)" with a link.
Data: Palworld 1.0.5 game files (Steam build 25247047)Updated
Quick start
Base URL https://paltoolkit.com/api/v1/. Every file is plain JSON with a meta block (API version, game version, data date, licence, attribution, sources) and a data block. Slugs are the same as in page URLs (/pals/anubis/ = /api/v1/pals/anubis.json), keys are snake_case, dates are ISO 8601.
curl
curl -s https://paltoolkit.com/api/v1/pals/anubis.json | jq '.data.stats'
curl -s https://paltoolkit.com/api/v1/breeding/anubis.json | jq '.data.earliest_pair'JavaScript (fetch)
const res = await fetch('https://paltoolkit.com/api/v1/breeding/anubis.json');
const { data } = await res.json();
console.log(`${data.name}: ${data.combo_count} combos, earliest`, data.earliest_pair.parents);Python
import json, urllib.request
URL = 'https://paltoolkit.com/api/v1/pals.json'
req = urllib.request.Request(URL, headers={'User-Agent': 'my-discord-bot/1.0'})
pals = json.load(urllib.request.urlopen(req))['data']
flyers = [p['name'] for p in pals if p['work'].get('transporting', 0) >= 3]
print(len(pals), 'Pals;', flyers[:5])JavaScript client
A dependency-free ES module (paltoolkit.js, about 8 KB) with getPal, getBreeding, childOf (computed locally from the matrix), search and one getter per endpoint. It works in browsers, Deno, Bun and Node 18+. Self-host a copy if you need it offline.
import { createClient } from 'https://paltoolkit.com/api/v1/paltoolkit.js';
const ptk = createClient(); // or createClient({ base: '/my-mirror/api/v1' })
const pal = await ptk.getPal('anubis'); // full Pal record
const how = await ptk.getBreeding('anubis'); // every parent pair, earliest first
const kid = await ptk.childOf('lamball', 'cattiva'); // -> 'lamball' slug (matrix, no network after first load)
const hits = await ptk.search('jorm'); // -> [{ kind: 'pal', slug, name, url }, …]Endpoints
| Endpoint | What it returns | Sources |
|---|---|---|
/api/v1/index.json | API index: version, licence, sources, endpoints | PalToolkit |
/api/v1/pals.json | All Pals (list): elements, rarity, work, base stats, image, page URL | palcalc, palworld-atlas-data, PalEdit, palworld-knowledge, PalToolkit |
/api/v1/pals/{slug}.json | One Pal: stats, movement, work, skills, passives, egg, spawns, alpha, breeding summary | palcalc, palworld-atlas-data, PalEdit, palworld-knowledge, PalToolkit |
/api/v1/breeding.json | Breeding rule, special recipes, inheritance weights, combo count + earliest pair per child | PalToolkit, palcalc |
/api/v1/breeding/{child}.json | Every parent pair for one child, earliest first | PalToolkit, palcalc |
/api/v1/breeding/matrix.json | Compact child-of-pair matrix for local lookups (any pair) | PalToolkit, palcalc |
/api/v1/items.json | All items (list): category, rarity, price, stack size | palworld-atlas-data, PalDex, PalToolkit |
/api/v1/items/{slug}.json | One item: + merchants selling it, skill fruit / implant links, egg hatches | palworld-atlas-data, PalDex, PalToolkit |
/api/v1/passives.json | Passive skills: rank, effects, how to get them, Pals that have them innately | palcalc, palworld-knowledge |
/api/v1/skills.json | Active skills: element, power, cooldown, who learns them at which level | palcalc |
/api/v1/elements.json | Elements: strong against, weak to, Pals per element | palcalc, palworld-atlas-data, PalToolkit |
/api/v1/work.json | Work suitability: Pals per job with level | palcalc, palworld-atlas-data, PalEdit, palworld-knowledge, PalToolkit |
/api/v1/eggs.json | Eggs: which Pals hatch from each, wild egg spawn counts | palworld-atlas-data, pal-atlas, PalToolkit |
/api/v1/bosses.json | Alpha, bounty and tower bosses with level and map coordinates | PalDex, palworld-atlas-data, palworld-knowledge |
/api/v1/collectibles.json | Collectible types and counts; effigy types | PalDex, pal-atlas |
/api/v1/collectibles/{type}.json | Map points of one type: effigies, journals, schematics, egg-spawns, chests, skill-fruit-trees, oil-rigs, npcs | PalDex, pal-atlas |
/api/v1/merchants.json | Merchants: location, currency, items sold, Pal dealers' pools | PalDex |
/api/v1/schema.json | JSON Schema (draft 2020-12) for every endpoint | PalToolkit |
/api/v1/paltoolkit.js | Dependency-free ES module client | PalToolkit |
Schemas: /api/v1/schema.json (JSON Schema 2020-12). Index with live counts: /api/v1/index.json. 2,115 files, 4.5 MB in total before compression; the largest are items.json 542 KB, collectibles/chests.json 179 KB, pals.json 173 KB, breeding/matrix.json 165 KB.
Response samples
/api/v1/pals/anubis.json
{
"meta": "{…}",
"data": {
"slug": "anubis",
"id": "Anubis",
"name": "Anubis",
"paldeck": "139",
"paldeck_no": 139,
"variant": false,
"elements": [
"ground"
],
"rarity": 10,
"size": "M",
"nocturnal": false,
"male_probability": 0.5,
"stats": {
"hp": 120,
"attack": 130,
"defense": 100,
"support": 100,
"craft_speed": 100,
"walk_speed": 160,
"run_speed": 800,
"ride_sprint_speed": 1000,
"transport_speed": 480,
"stamina": 100,
"food": 8,
"max_full_stomach": 540,
"price": 3217
},
"movement": {
"slow_walk": 80,
"walk": 160,
"run": 800,
"ride_sprint": 1000,
"transport": 480,
"swim": 240,
"swim_dash": 300
},
"lv80_range": {
"hp": [
5700,
7140
],
"attack": [
880,
1114
],
"defense": [
650,
830
]
},
"work": {
"handiwork": 6,
"mining": 6,
"transporting": 4
},
"damage_taken": {
"grass": 2.0,
"electric": 0.5
},
"active_skills": [
{
"skill": "stone-blast",
"level": 1
},
{
"skill": "power-bomb",
"level": 7
},
{
"skill": "sand-tornado",
"level": 15
},
{
…/api/v1/breeding/anubis.json
{
"meta": "{…}",
"data": {
"child": "anubis",
"name": "Anubis",
"breeding_class": "normal",
"combi_rank": 480,
"combo_count": 234,
"combo_count_definition": "unordered parent pairs, the same-species pair included; a gender-dependent pair is listed under each child it can hatch",
"earliest_pair": {
"parents": [
"blazamut",
"dualith"
],
"catch_level": 46
},
"pairs": [
[
"blazamut",
"dualith"
],
[
"suzaku-aqua",
"lyleen-noct"
],
[
"whalaska",
"lyleen-noct"
],
[
"blazamut",
"shadowbeak"
],
[
…/api/v1/items.json
{
"meta": "{…}",
"data": [
{
"slug": "ability-glasses",
"id": "Accessory_TalentChecker",
"name": "Ability Glasses",
"category": "Accessory",
"subcategory": "Accessory",
"rarity": 2,
"price": 51600,
"max_stack": 1,
"image": "https://paltoolkit.com/img/items/ability-glasses-64.webp",
"url": "https://paltoolkit.com/items/ability-glasses/",
"api_url": "https://paltoolkit.com/api/v1/items/ability-glasses.json"
},
{
"slug": "advanced-arrow",
"id": "SFArrow",
"name": "Advanced Arrow",
…Breeding matrix
/api/v1/breeding/matrix.json holds the child of every one of the 44,850 parent pairs as one flat array of Pal indexes (upper triangle, row-major), so a bot can answer "what do A and B make?" without another request. Katress + Wixen is the one pair whose child depends on the parents' genders: it is listed under gendered.
// pals[i], pals[j] with i <= j -> child index
const k = i * n - (i * (i - 1)) / 2 + (j - i);
const child = m.child[k] >= 0 ? m.pals[m.child[k]] : null;Rate limits and caching
There is no key and no hard rate limit: the files are static and served from a CDN with long cache lifetimes, CORS (Access-Control-Allow-Origin: *) and gzip/brotli. Please cache on your side, send a descriptive User-Agent, and fetch the matrix or list endpoints instead of thousands of single files. Data changes only when the game is patched; compare meta.data_updated or index.json before refetching. The JSON files are not meant for search engines and are served with X-Robots-Tag: noindex.
Licence and attribution
Free for any use, including commercial bots and apps, under CC BY 4.0. Credit "Data by PalToolkit (paltoolkit.com)" with a link to paltoolkit.com in your README, bot help text or footer. Ready to paste: <a href="https://paltoolkit.com/?utm_source=api&utm_medium=referral&utm_campaign=api-credit">Data by PalToolkit (paltoolkit.com)</a> (the tags only tell us which projects use the data). Game data and images are © Pocketpair, Inc.; image URLs point at our CDN for convenience and are not licensed by us. The upstream open-source projects below are MIT licensed: keep their copyright notices if you redistribute the data in bulk (they are in index.json → sources). The same licence and the same rule apply to the JSON our own tools load from /data/: it holds only our own computations and facts from the MIT-licensed projects below.
| Source | Licence | Copyright | Used for |
|---|---|---|---|
| PalToolkit | CC-BY-4.0 | PalToolkit | breeding results and pair lists (our engine, checked pair by pair against palcalc), earliest pairs, egg per Pal (element + rarity rule), spawn summaries, damage multipliers, Lv 80 stat ranges, slugs and URLs |
| palcalc | MIT | Copyright 2024, Tyler Camp | Pal names, stats, combi rank, work levels, active skills, passive skills, unique breeding combos, inheritance weights |
| palworld-atlas-data | MIT | Copyright (c) 2026 Adam Young | elements, gear, wild + alpha spawn points and levels, item table (id, name, category, rarity, price, stack) |
| PalEdit | MIT | Copyright (c) 2024 Jacob Lawrence | support and work-speed stats, Oil Extraction level, Terraria Pal elements |
| palworld-knowledge | MIT | Copyright (c) 2026 GGarnize | movement speeds, alpha natural passives, passive availability and effects |
| PalDex | MIT | Copyright (c) 2026 Catherine Renelle | alpha + bounty bosses, towers, oil rigs, effigies, journals, schematics, NPCs, merchants |
| pal-atlas | MIT | Copyright (c) 2026 Ryexha, JenAri | egg spawn spots, chests, skill-fruit trees |
| Palworld (Pocketpair, Inc.) | game data and art (c) Pocketpair, Inc. | Palworld (c) Pocketpair, Inc. | all underlying game facts; images linked by URL are game art, not covered by the data licence |
Not in the API
Some facts on the site come from sources whose terms do not let us relicense them, so the API leaves them out:
pals.partner_skill: only source is palworld.kimpton.io (no licence stated)pals.drops: only source is palworld.kimpton.io (no licence stated)pals.genus, pals.stats.melee, pals.ranch, pals.boss_locations: palworld.kimpton.io gap-fillpals.capture_rate, pals.trust, pals.predator, pals.exp_ratio: palworld-save-pal (GPL-3.0) factsitems.recipe, items.stats, items.weight, items.drop_sources, items.tiers, items.ammo: palworld.kimpton.io item pagestechnology, structures: palworld-save-pal (GPL-3.0) factscollectibles: kinship_peach, enemy_camps, effigy rank costs: palworld-save-pal (GPL-3.0) factsnear (closest place name), u/v (map-image fractions): derived from palworld.kimpton.io map markers / our map artimages: Palworld art (c) Pocketpair: linked by URL on paltoolkit.com, never embedded, not covered by the data licence
Versioning and changelog
The URL carries the major version. Within v1 fields are only added, never renamed or removed; a breaking change ships as /api/v2/ and v1 stays online for at least six months. Data refreshes with each game patch (current: Palworld 1.0.5, data date 2026-09-29).
- 1.0.0 (2026-10-01): First public release: Pals, breeding (per child + full matrix), items, passive skills, active skills, elements, eggs, bosses, collectibles, merchants, JS client. pals.json lists the full Paldeck; Astralym (#204) has breeding_class "none" and is not in the matrix.
Next step: get the child of any two Pals, every parent combo and the shortest breeding path in the Palworld breeding calculator.
Frequently asked questions
#Is the PalToolkit API free?
Yes. There is no key, no sign-up and no fee. Credit "Data by PalToolkit (paltoolkit.com)" with a link to paltoolkit.com.
Can I use it in a Discord bot or a mod tool?
Yes, including commercial projects, under CC BY 4.0. Cache responses and fetch list or matrix files rather than thousands of single files.
How often is the data updated?
After each Palworld patch. The current data is Palworld 1.0.5; index.json shows the data date.
Does it include Pal images?
Each Pal and item has image URLs on paltoolkit.com. The images are Palworld art © Pocketpair, Inc. and are not covered by the data licence.