📘
Runescape3-api
  • Introduction
  • Documentation
    • Bestiary
    • Hiscores
    • Runemetrics
    • Grand Exchange
Powered by GitBook
On this page
  • Usage
  • Functions
  • get_beast(id: int)
  • get_beast_by_term(term: str)
  • get_beast_by_first_letter(letter: str)
  • get_areas()
  • get_beasts_by_area(area: str)
  • get_slayer_categories()
  • get_slayer_beasts_by_category_id(id: int)
  • get_weakness_names()
  • get_beasts_by_weakness_id(id: int)
  • get_beasts_by_level_group(level_from: int, level_to: int)

Was this helpful?

  1. Documentation

Bestiary

Usage

from rs3_api import Bestiary
bestiary = Bestiary()

Functions

get_beast(id: int)

Retrieve a beasts information by id

Parameter

Type

id

int

response = bestiary.get_beast(89)
print(response)
{
  "magic": 11,
  "defence": 11,
  "level": 15,
  "description": "Horse with a horn.",
  "areas": [
    "RuneScape Surface"
  ],
  "poisonous": false,
  "weakness": "Arrow",
  "size": 2,
  "ranged": 1,
  "attack": 1,
  "members": false,
  "animations": {
    "death": 6377,
    "attack": 6376
  },
  "name": "Unicorn",
  "xp": "32.1",
  "lifepoints": 550,
  "id": 89,
  "aggressive": false,
  "attackable": true
}

get_beast_by_term(term: str)

Look up every occurrence of a term in the bestiary

Parameter

Type

term

str

response = bestiary.get_beast_by_term("cow")
# Look up more than one term by separating with + e.g "cow+rabbit"
print(response)
[
  {
    'label': 'Cow (4)',
    'value': 81
  },
  {
    'label': 'Cow (4)',
    'value': 397
  },
  {
    'label': 'Cow (1)',
    'value': 3309
  },
  {
    'label': 'Cow (1)',
    'value': 14999
  },
  {
    'label': 'Cow (4)',
    'value': 20969
  },
  {
    'label': 'Cow (4)',
    'value': 20970
  },
  {
    'label': 'Cow (4)',
    'value': 20971
  },
  {
    'label': 'Cow (4)',
    'value': 20974
  },
  {
    'label': 'Cowardly Bandit',
    'value': 1886
  },
  # ... 15+ more items
]

get_beast_by_first_letter(letter: str)

Look up every monster which starts with a certain letter

Parameter

Type

letter

str

response = bestiary.get_beast_by_first_letter("C")
print(response)
[
  {
    'label': 'Cabbage',
    'value': 22836
  },
  {
    'label': 'Cabbage archer (0)',
    'value': 21455
  },
  {
    'label': 'Cabbagemancer (105)',
    'value': 25157
  },
  {
    'label': 'Cabbageomancer (0)',
    'value': 21456
  },
  {
    'label': 'Cabin boy',
    'value': 4539
  },
  {
    'label': 'Cadarn herald',
    'value': 19857
  },
  {
    'npcs': [
      {
        'label': 'Cadarn magus (122)',
        'value': 19818
      },
      {
        'label': 'Cadarn magus (122)',
        'value': 19820
      }
    ],
    'dupe': 'Cadarn magus'
  },
  {
    'label': 'Cadarn musician',
    'value': 20303
  }
  # ...200+ more items
]

get_areas()

List of all areas in the bestiary

response = bestiary.get_areas()
print(response)
[
  'Agility Pyramid',
  'Agility course pit',
  'Air Rune Temple',
  'Aminishi Dungeon',
  'Ancient cavern',
  'Ape Atoll',
  'Ape Atoll tunnels',
  'Ardougne underground',
  "Armadyl's Citadel",
  'Arposandran underground',
  'Arzinian Gold Mine',
  'Ascension Dungeon',
  'Asgarnian Ice Dungeon',
  # 200+ more items
]

get_beasts_by_area(area: str)

Look up all beasts the searched area

Parameter

Type

area

str

response = bestiary.get_beasts_by_area("The Abyss")
print(response)
# value is the beasts Id
[
  {
    'label': 'Abyssal demon (98)',
    'value': 1615
  },
  {
    'label': 'Abyssal guardian (79)',
    'value': 2264
  },
  {
    'label': 'Abyssal leech (72)',
    'value': 2263
  },
  {
    'label': 'Abyssal walker (77)',
    'value': 2265
  },
  {
    'label': 'Dark mage',
    'value': 2262
  }
]

get_slayer_categories()

Get all slayer categories and their Id

response = bestiary.get_slayer_categories()
print(response)
{
  'Aberrant spectres': 41,
  'Abyssal demons': 42,
  'Acheron mammoths': 133,
  'Adamant dragons': 127,
  'Airut': 117,
  'Ankou': 79,
  'Aquanites': 95,
  'Ascension members': 115,
  'Aviansies': 114,
  'Banshees': 38,
  'Basilisks': 43,
  'Bats': 8,
  'Bears': 13,
  'Birds': 5,
  'Black demons': 30,
  'Black dragons': 27,
  'Bloodveld': 48,
  'Blue dragons': 25,
}

get_slayer_beasts_by_category_id(id: int)

Get a list of all slayer beast by category Id

Parameter

Type

id

int

response = bestiary.get_slayer_beasts_by_category_id(25)
print(response)
[
  {
    'label': 'Capsarius (105)',
    'value': 17146
  },
  {
    'label': 'Gladius (91)',
    'value': 17145
  },
  {
    'label': 'Legio Primus (304)',
    'value': 17149
  },
  {
    'label': 'Legio Quartus (304)',
    'value': 17152
  },
  {
    'label': 'Legio Quintus (304)',
    'value': 17153
  },
  {
    'label': 'Legio Secundus (304)',
    'value': 17150
  },
  {
    'label': 'Legio Sextus (304)',
    'value': 17154
  },
  {
    'label': 'Legio Tertius (304)',
    'value': 17151
  },
  {
    'label': 'Rorarius (84)',
    'value': 17144
  },
  {
    'label': 'Scutarius (105)',
    'value': 17147
  }
]

get_weakness_names()

Get all weaknesses

response = bestiary.get_weakness_names()
print(response)
{
  'Air': 1,
  'Arrow': 8,
  'Bolt': 9,
  'Crushing': 7,
  'Earth': 3,
  'Fire': 4,
  'None': 0,
  'Slashing': 6,
  'Stabbing': 5,
  'Thrown': 10,
  'Water': 2
}

get_beasts_by_weakness_id(id: int)

Get all beasts that have a certain weakness

Parameter

Type

id

int

response = bestiary.get_beasts_by_weakness_id(1)
print(response)
[
  {
    'label': 'Adamant dragon (116)',
    'value': 21135
  },
  {
    'label': 'Afflicted (60)',
    'value': 1257
  },
  {
    'label': 'Afflicted (61)',
    'value': 1258
  },
  {
    'label': 'Afflicted (63)',
    'value': 1261
  },
  {
    'label': 'Afflicted (64)',
    'value': 1262
  },
  {
    'label': 'Anagami (124)',
    'value': 23073
  },
  {
    'label': 'Angry barbarian spirit (106)',
    'value': 749
  },
  {
    'label': 'Animated pickaxe (5)',
    'value': 10168
  },
  # ... 200+ more items
]

get_beasts_by_level_group(level_from: int, level_to: int)

Get all beasts between a certain level group

Parameters

Type

level_from

int

level_to

int

response = bestiary.get_beasts_by_level_group(140, 150)
# Both arguments are inclusive
print(response)
[
  {
    'label': 'Vanstrom Klause (140)',
    'value': 14176
  },
  {
    'label': 'Vanstrom Klause (140)',
    'value': 14178
  },
  {
    'label': 'Vanstrom Klause (140)',
    'value': 14179
  },
  {
    'label': 'TokHaar-Xil (140)',
    'value': 15184
  },
  {
    'label': 'Vinecrawler (140)',
    'value': 24830
  },
  {
    'label': 'Bulbous crawler (140)',
    'value': 24831
  },
  {
    'label': 'Moss golem (140)',
    'value': 24832
  },
  {
    'label': 'Moss golem (140)',
    'value': 24833
  },
  {
    'label': 'Magma golem (140)',
    'value': 25669
  },
  {
    'label': 'Shul the Molten (140)',
    'value': 25691
  },
  {
    'label': 'Forgotten warrior (141)',
    'value': 10532
  },
  {
    'label': 'Forgotten warrior (141)',
    'value': 10533
  },
  {
    'label': 'Forgotten warrior (141)',
    'value': 10534
  },
  {
    'label': 'Forgotten warrior (141)',
    'value': 10535
  },
  {
    'label': 'Combat instructor',
    'value': 25278
  },
  {
    'label': 'Ate all the pies (147)',
    'value': 15297
  },
  {
    'label': 'Ahrim the Blighted (150)',
    'value': 2025
  },
  {
    'label': 'Dharok the Wretched (150)',
    'value': 2026
  },
  {
    'label': 'Guthan the Infested (150)',
    'value': 2027
  },
  {
    'label': 'Karil the Tainted (150)',
    'value': 2028
  },
  {
    'label': 'Torag the Corrupted (150)',
    'value': 2029
  },
  {
    'label': 'Verac the Defiled (150)',
    'value': 2030
  },
  {
    'label': 'Throwing muspah (150)',
    'value': 19150
  },
  {
    'label': 'Force muspah (150)',
    'value': 19151
  },
  {
    'label': 'Bladed muspah (150)',
    'value': 19152
  },
  {
    'label': 'Linza the Disgraced (150)',
    'value': 22721
  }
]
PreviousIntroductionNextHiscores

Last updated 4 years ago

Was this helpful?