Skip to content

luyluish/persona-compendium

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Persona Compendium API

I am thou, thou art I...

Table of Contents

  1. Overview
  2. Features
  3. Tech Used
  4. How to Use
  5. API Endpoints

♠️ Overview

Persona Compendium is a read-only API that provides various informations about all the personas from Persona 3 Reload, the most recent game in the series to date.

In its essence, it serves as a mirror of the compendium present in the game, responding the user's requests with a json containing key characteristics from each persona, such as its arcana, description, image, stats, resistances and more.

It currently does not contain fusion possibilities, movesets nor prices, those being possible future additions for the project.

About the Data

The data which this API is based on was gathered from the following sources:

  • Megaten Database is a open source database which contains a immense amount of data for the Megami Tensei games, including in-game stats, descriptions and more. Props to aqiu384 for that!

  • Images for the personas were taken directly from the Megami Tensei Wiki.

  • And of course, literally all of the content is ripped from the Megami Tensei/Persona games developed by Atlus Co., Ltd.

With that in mind, the API was created with the intention of being an easy accessable source of persona information, basically some kind of "persona encyclopedia". This can help enthusiasts such as me to make their own projects related to the games!

(Persona Compendium was made for study purposes only, as such, it has no copyright infringement intended. Persona and Megami Tensei are properties of Atlus Co., Ltd. and so all the content present in this API belong to their rightful owners)

♥️ Features

  • List all personas in Persona 3 Reload, along with their respective information.
  • Query for a specific persona from the game.
  • Easily customizable code and endpoints.
  • TSV file containing all the info present in the database.

♣️ Tech Used

♦️ How to Use

As a read-only API, the only HTTP methods you can use are GET requests, in order to obtain a json as a response. For that, all you need to do is simply write down one of the API's endpoints in your browser/tool and you will get your desired json file.

The project is currently being held in Render, in the address persona-compendium.onrender.com/. Note that the root address only responds with the other possible addresses, so you need to specify an endpoint to get a proper response. You can either specify which persona you want to check or simply get a list of all the personas.

Here's an example of the API being used. Note that you need to type the persona's name in all lowercase, with dashes (-) instead of spaces.

persona-compendium.onrender.com/personas/jack-frost/

{
  "id": 16,
  "name": "Jack Frost",
  "arcana": "Magician",
  "level": 8,
  "description": "A winter fairy of European descent. He leaves ice patterns on windows and nips people's noses. Though normally an innocent creature, he will freeze his victims to death if provoked.",
  "image": "https://megatenwiki.com/images/3/3a/P5X_Jack_Frost_Artwork.png",
  "strength": 5,
  "magic": 9,
  "endurance": 8,
  "agility": 6,
  "luck": 4,
  "weak": [
    "Fire"
  ],
  "resists": [],
  "reflects": [],
  "absorbs": [],
  "nullifies": [
    "Ice"
  ],
  "dlc": 0,
  "query": "jack-frost"
}

Below, a brief explanation of what each element in the json means:

  • id: The persona's ID in the database.
  • name: The persona's name in English.
  • arcana: Corresponding arcana.
  • level: Starting level.
  • description: In-game description.
  • image: Transparent image, usually from the most recent games.
  • strength, magic, endurance, agility, luck: Base stats (lowest level).
  • weak, resists, reflects, absorbs, nullifies: Type relations, stored in a string array.
  • dlc: Whether the persona comes from a DLC or not (0 for false, 1 for true).
  • query: String used for querying the persona in the API.

👁️‍🗨️ API Endpoints

There are three types of response you can request with this API:

/

This is the root endpoint. It responds with an alphabetically-ordered list of all possible endpoints you can access in the API.

/

{
  "Persona Compendium API is live! Here's a list of all possible endpoints: /personas/": [
    "/personas/abaddon/",
    "/personas/alice/",
    "/personas/alilat/",
    "/personas/ananta/",
    "/personas/anat/",
    "/personas/angel/",
    "/personas/anubis/",
    "/personas/apsaras/",
    "/personas/ara-mitama/",
    "/personas/arahabaki/",
    "/personas/archangel/",
    "/personas/arsene/",
    "/personas/artemisia/",
    ...
    "/personas/yurlungur/",
    "/personas/zorro/",
    "/personas/zouchouten/"
  ]
}

/personas/

Will return a list with all of the personas' individual jsons, ordered by ID.

/personas/

[
  {
    "id": 1,
    "name": "Orpheus",
    "arcana": "Fool",
    "level": 1,
    "description": "A poet of Greek mythology skilled with the lyre. He tried to retrieve his wife from Hades, but she vanished when he looked upon her before reaching the surface.",
    "image": "https://megatenwiki.com/images/b/b3/P3_Orpheus_Artwork.png",
    "strength": 3,
    ...
    "query": "orpheus"
  },
  {
    "id": 2,
    "name": "Slime",
    "arcana": "Fool",
    "level": 12,
    "description": "A primitive monster with a viscous body. There are various theories as to its origin, but it is still under debate. Said to compulsively collect shiny objects.",
    "image": "https://megatenwiki.com/images/7/70/P5X_Slime_Artwork.png",
    ...
    "query": "slime"
  },
  ...
  ...
  ...
  {
    "id": 213,
    "name": "Metatron",
    "arcana": "Aeon",
    "level": 87,
    "description": "The greatest angel in Judeo-Christian legend. He is known as the Voice of God or the Angel of Contracts. Despite his duty to maintain the world's order, he shows no mercy towards humanity.",
    "image": "https://megatenwiki.com/images/2/26/DeSum_Metatron_Artwork.png",
    ...
    "query": "metatron"
  }
]

/personas/{persona-name}/

Returns a single persona's file.

/personas/orpheus/

{
  "id": 1,
  "name": "Orpheus",
  "arcana": "Fool",
  "level": 1,
  "description": "A poet of Greek mythology skilled with the lyre. He tried to retrieve his wife from Hades, but she vanished when he looked upon her before reaching the surface.",
  "image": "https://megatenwiki.com/images/b/b3/P3_Orpheus_Artwork.png",
  "strength": 3,
  "magic": 1,
  "endurance": 2,
  "agility": 3,
  "luck": 1,
  "weak": [
    "Electric",
    "Dark"
  ],
  "resists": [
    "Fire"
  ],
  "reflects": [],
  "absorbs": [],
  "nullifies": [],
  "dlc": 0,
  "query": "orpheus"
}