> For the complete documentation index, see [llms.txt](https://ballioli1.gitbook.io/runescape3-api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ballioli1.gitbook.io/runescape3-api/docs/bestiary.md).

# Bestiary

## Usage

```python
from rs3_api import Bestiary
bestiary = Bestiary()
```

## Functions

### get\_beast(id: int)

> Retrieve a beasts information by id

| Parameter | Type  |
| --------- | ----- |
| `id`      | `int` |

{% tabs %}
{% tab title="Python" %}

```python
response = bestiary.get_beast(89)
print(response)
```

{% endtab %}

{% tab title="Response" %}

```python
{
  "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
}
```

{% endtab %}
{% endtabs %}

### get\_beast\_by\_term(term: str)

> Look up every occurrence of a term in the bestiary&#x20;

| Parameter | Type  |
| --------- | ----- |
| `term`    | `str` |

{% tabs %}
{% tab title="Python" %}

```python
response = bestiary.get_beast_by_term("cow")
# Look up more than one term by separating with + e.g "cow+rabbit"
print(response)
```

{% endtab %}

{% tab title="Response" %}

```python
[
  {
    '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
]
```

{% endtab %}
{% endtabs %}

### get\_beast\_by\_first\_letter(letter: str)

> Look up every monster which starts with a certain letter

| Parameter | Type  |
| --------- | ----- |
| `letter`  | `str` |

{% tabs %}
{% tab title="Python" %}

```python
response = bestiary.get_beast_by_first_letter("C")
print(response)
```

{% endtab %}

{% tab title="Response" %}

```python
[
  {
    '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
]
```

{% endtab %}
{% endtabs %}

### get\_areas()

> List of all areas in the bestiary

{% tabs %}
{% tab title="Python" %}

```python
response = bestiary.get_areas()
print(response)
```

{% endtab %}

{% tab title="Response" %}

```python
[
  '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
]
```

{% endtab %}
{% endtabs %}

### get\_beasts\_by\_area(area: str)

> Look up all beasts the searched area

| Parameter | Type  |
| --------- | ----- |
| `area`    | `str` |

{% tabs %}
{% tab title="Python" %}

```python
response = bestiary.get_beasts_by_area("The Abyss")
print(response)
```

{% endtab %}

{% tab title="Response" %}

```python
# 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
  }
]
```

{% endtab %}
{% endtabs %}

### &#x20;get\_slayer\_categories()

> Get all slayer categories and their Id

{% tabs %}
{% tab title="Python" %}

```python
response = bestiary.get_slayer_categories()
print(response)
```

{% endtab %}

{% tab title="Response" %}

```python
{
  '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,
}
```

{% endtab %}
{% endtabs %}

### get\_slayer\_beasts\_by\_category\_id(id: int)

> Get a list of all slayer beast by category Id

| Parameter | Type  |
| --------- | ----- |
| `id`      | `int` |

{% tabs %}
{% tab title="Python" %}

```python
response = bestiary.get_slayer_beasts_by_category_id(25)
print(response)
```

{% endtab %}

{% tab title="Response" %}

```python
[
  {
    '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
  }
]
```

{% endtab %}
{% endtabs %}

### get\_weakness\_names()

> Get all weaknesses

{% tabs %}
{% tab title="Python" %}

```python
response = bestiary.get_weakness_names()
print(response)
```

{% endtab %}

{% tab title="Response" %}

```python
{
  'Air': 1,
  'Arrow': 8,
  'Bolt': 9,
  'Crushing': 7,
  'Earth': 3,
  'Fire': 4,
  'None': 0,
  'Slashing': 6,
  'Stabbing': 5,
  'Thrown': 10,
  'Water': 2
}
```

{% endtab %}
{% endtabs %}

### get\_beasts\_by\_weakness\_id(id: int)

> Get all beasts that have a certain weakness

| Parameter | Type  |
| --------- | ----- |
| `id`      | `int` |

{% tabs %}
{% tab title="Python" %}

```python
response = bestiary.get_beasts_by_weakness_id(1)
print(response)
```

{% endtab %}

{% tab title="Response" %}

```python
[
  {
    '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
]
```

{% endtab %}
{% endtabs %}

### 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` |

{% tabs %}
{% tab title="Python" %}

```python
response = bestiary.get_beasts_by_level_group(140, 150)
# Both arguments are inclusive
print(response)
```

{% endtab %}

{% tab title="Response" %}

```python
[
  {
    '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
  }
]
```

{% endtab %}
{% endtabs %}
