Skip to content

xpao24/palworld-api

Repository files navigation

Palworld Pal Api

Palworld Pal API

GitHub top language GitHub language count Repository size GitHub last commit Repository issues GitHub

Info   |    Technologies   |    How to   |    Functionalities   |    Contribute   |    License

🚀 Info

This is the Palworld API, it's a simple API to get all Palworld Paldex data.

Share a palworld breeding calculator constructed using this API: 🔗 Palworld Breeding Calculator

Share a palworld breeding tree constructed using this API: 🔗 Palworld Breeding Tree

This is what final data looks like:

{
  "content": [
    {
      "id": 85,
      "key": "085",
      "image": "/public/images/085.png",
      "name": "Relaxaurus",
      "wiki": "https://palworld.fandom.com/wiki/Relaxaurus",
      "types": ["dragon", "water"],
      "imageWiki": "https://static.wikia.nocookie.net/palworld/images/0/01/Relaxaurus_menu.png/",
      "suitability": [
        {
          "type": "watering",
          "level": 2
        },
        {
          "type": "transporting",
          "level": 1
        }
      ],
      "drops": ["High Quality Pal Oil", "Ruby"],
      "aura": {
        "name": "Hungry Missile",
        "description": "Can be ridden. Can rapidly fire a missile launcher while mounted."
      },
      "description": "Contrary to its blasé appearance, it's quite ferocious.\nIt perceives everything in its sight as prey and will stop at nothing to devour it.",
      "skills": [
        {
          "level": 1,
          "name": "Dragon Cannon",
          "type": "Dragon",
          "cooldown": 2,
          "power": 30,
          "description": "Hurls an energy ball imbued with draconic energy at an enemy.\n"
        },
        {
          "level": 7,
          "name": "Aqua Gun",
          "type": "Water",
          "cooldown": 4,
          "power": 40,
          "description": "Hurls a ball of water straight at an enemy.\n"
        },
        {
          "level": 15,
          "name": "Dragon Burst",
          "type": "Dragon",
          "cooldown": 10,
          "power": 55,
          "description": "Quickly discharges draconic energy, damaging those around it.\n"
        },
        {
          "level": 22,
          "name": "Bubble Blast",
          "type": "Water",
          "cooldown": 13,
          "power": 65,
          "description": "Fires numerous bubbles that slowly pursue an enemy.\n"
        },
        {
          "level": 30,
          "name": "Draconic Breath",
          "type": "Dragon",
          "cooldown": 15,
          "power": 70,
          "description": "Exhales breath imbued with draconic energy, dealing continuous damage to those in front of it.\n"
        },
        {
          "level": 40,
          "name": "Aqua Burst",
          "type": "Water",
          "cooldown": 30,
          "power": 100,
          "description": "Creates a giant ball of water and hurls it at an enemy.\n"
        },
        {
          "level": 50,
          "name": "Dragon Meteor",
          "type": "Dragon",
          "cooldown": 55,
          "power": 150,
          "description": "Calls down numerous small meteorites and launches them at an enemy.\n"
        }
      ],
      "power": 280,
      "order": 54   
    }
  ],
  "page": 1,
  "limit": 10,
  "count": 1,
  "total": 1
}

💻 Technologies

This project was developed following this technologies:

ℹ️ How To

To clone this application you will need Git + bun. Run in terminal:

##### Clone this repo #####

# https
$ git clone https://github.com/xpao24/palworld-pal-api.git

# ssh
$ git clone git@github.com:xpao24/palworld-pal-api.git

##### Access this repo #####
$ cd palworld-pal-api

##### Install dependencies #####
$ bun install

##### Run the application #####
$ bun start

You also can run it easily with Docker:

docker-compose up

After that, just choose your favorite API client and make a request to http://localhost:3000.

You can pass some query params to the request, like http://localhost:3000?page=1&limit=10&name=Relaxaurus.

All query params are optional, but you can use them to filter the results.

Param Type Description
page number The page number you want to get. Default is 1.
limit number The number of results you want to get. Default is 10.
name string The name of the Pal you want to get.
types string The type of the Pal you want to get.
suitability string The suitability of the Pal you want to get.
drops string The drop of the Pal you want to get.
key string The key of the Pal you want to get.
term* string The term you want to search.

*This api provides full text search with Elasticlunr, so you can search for any term in the Palworld Paldex.

🔎 Functionalities

See the current features!

  • ElysiaJS for fast and easy API development;
  • Elasticlunr for fast and easy full text search;
  • useCase's structure for better code organization;
  • typescript for better code quality;
  • typesafety for better code quality;
  • Docker

🌠 Upcoming features

  • Error handling
  • Eslint and Prettier
  • Tests

👥 Contribute

  • Fork this repository;
  • Create one branch with your feature: git checkout -b my-feature;
  • Commit your alterations: git commit -m 'feat: My new feature';
  • Push to your branch: git push origin my-feature.

Open a pull request with your branch. After pull request merge, you should delete your branch.

📝 License

This project is under MIT license. See LICENSE for more information.


Made with 💙 by Lucass Lee 👋 Get in touch!

This project was created using bun init in bun v1.0.25. Bun is a fast all-in-one JavaScript runtime.