Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
f287beb
feat: add horde encounter information pt 1
gr-ocde Feb 4, 2026
9108595
feat: add horde encounter info for xy and oras
ItsMeJoji Feb 4, 2026
4c08b6f
Merge branch 'master' into horde-encounter-info
ItsMeJoji Feb 4, 2026
5e98375
correcting missed master merge
ItsMeJoji Feb 4, 2026
a979de3
add missing female pyroar
anhthang Feb 13, 2026
f3e424f
Fixed pokemon_stats_past
notblisy Feb 16, 2026
f40a4f6
Add XD Purification moves to pokemon_moves.csv
notblisy Feb 17, 2026
229bbb9
Merge branch 'master' into past-stat-changes-fixed
notblisy Feb 18, 2026
57f38e7
Merge branch 'master' into XD-Purification-Moves-Added
notblisy Feb 19, 2026
5a484c2
Merge pull request #1410 from notblisy/XD-Purification-Moves-Added
Naramsim Feb 20, 2026
c9e96a2
Merge branch 'master' into fix/revert-follow-me-pkm-moves
Naramsim Feb 20, 2026
c6b618b
Merge pull request #1415 from programgames/fix/revert-follow-me-pkm-m…
Naramsim Feb 20, 2026
d5b4ce6
Merge branch 'master' into past-stat-changes-fixed
Naramsim Feb 20, 2026
551bcfb
Merge pull request #1409 from notblisy/past-stat-changes-fixed
Naramsim Feb 20, 2026
da443bb
Merge branch 'master' into horde-encounter-info
Naramsim Feb 20, 2026
935b7a3
Merge branch 'master' into female-pyroar
Naramsim Feb 20, 2026
4c187d7
Update encounter method description for clarity
ItsMeJoji Feb 20, 2026
782d56e
Update encounter slots in CSV file
ItsMeJoji Feb 20, 2026
b4f5da1
fix: adding pokemon_form instead of new form_id
anhthang Feb 21, 2026
c9ee9f7
Fix encounter slot value for Swablu on 114
ItsMeJoji Feb 21, 2026
35f2944
Fix encounters based on comments given
ItsMeJoji Feb 21, 2026
452c2de
Update location areas with new names and ORAS specific locations
ItsMeJoji Feb 21, 2026
71940a0
add missing female Frillish, Jellicent
anhthang Feb 21, 2026
ef5db06
Merge pull request #1407 from anhthang/female-pyroar
Naramsim Feb 21, 2026
8bed8bb
Update encounter records with new location area IDs
ItsMeJoji Feb 21, 2026
371fdb4
Change location names for ORAS specific locations
ItsMeJoji Feb 21, 2026
39834d4
Updated location areas based on feedback
ItsMeJoji Feb 23, 2026
a5b7ae2
Update encounter records based on feedback
ItsMeJoji Feb 23, 2026
3abd1b0
fix duplicate tm100
anhthang Feb 13, 2026
64494e6
Update location areas with new tide descriptions
ItsMeJoji Feb 23, 2026
709200a
Merge branch 'master' into horde-encounter-info
ItsMeJoji Feb 23, 2026
f066994
Merge pull request #1404 from anhthang/fix-tm
Naramsim Feb 23, 2026
781bdaa
Merge branch 'master' into horde-encounter-info
Naramsim Feb 23, 2026
90a06db
Merge pull request #1393 from ItsMeJoji/horde-encounter-info
Naramsim Feb 23, 2026
8ad2da3
fix: typo
Naramsim Feb 24, 2026
7ed7e9d
Add external game gift encounters (#1417)
notblisy Feb 24, 2026
5ce8b1e
fix: add male identifier for Pyroar, Frillish, Jellicent (#1424)
anhthang Mar 1, 2026
8fb0662
Add RSE encounters for new Shoal Cave location areas (#1425)
jemarq04 Mar 3, 2026
4ca9e43
Added pt-BR to language_names.csv (#1421)
annibal Mar 3, 2026
5e1c604
fix(data): add missing evolution trigger names in French and English …
LoicOuth Mar 6, 2026
955fdf8
fix(data): add French flavor text entries for various moves (#1430)
LoicOuth Mar 7, 2026
96fd85e
Added Mirage Island Encounters (#1428)
ItsMeJoji Mar 9, 2026
febe4e2
Add missing localized version names for Legends Z-A and Mega Dimensio…
anhthang Mar 9, 2026
fd3bdea
Your commit message
Naramsim Dec 10, 2025
e36f467
Fix: Expose endpoint with version/hash (#1434)
gabrnavarro Mar 12, 2026
905e74b
Use unix timestamp in `meta` endpoint (#1440)
Naramsim Mar 13, 2026
387e79f
trigger build
Naramsim Mar 14, 2026
19222e7
feat: Update type icons to include logo (ref: sprites/pull/199) (#1443)
FallenDeity Mar 16, 2026
7aa28f5
fix: add git to pokeapi image (#1442)
Naramsim Mar 16, 2026
5b1448d
Normalize CSV identifiers to ASCII slugs (#1438)
LoicOuth Mar 16, 2026
f0858b1
ORAS Mirage Forest Encounters (#1441)
ItsMeJoji Mar 19, 2026
b315532
Add all Colosseum Pokemon to API (#1444)
notblisy Mar 23, 2026
09aa5c8
fix: remove extra double quotes for Route 210 and 211 (#1445)
jemarq04 Mar 23, 2026
8711df8
Add the pokedex_version_groups for more games (#1449)
msvdaamen Mar 26, 2026
7755c12
Add XD Encounters, Encounter Conditions, Locations, Location Areas, E…
notblisy Apr 1, 2026
f7f4b12
Update Pokémon stats for ID 10280 (#1469)
lutfunjoya-netizen Apr 4, 2026
62ee90b
Fix XD Pokespot encounter rates + Arbok EV Yield in Gen 6 (#1468)
notblisy Apr 4, 2026
4be43e0
Update AI-assisted coding guidelines in CONTRIBUTING.md (#1439)
phalt Apr 4, 2026
495822b
Add all game corner encounters (#1467)
notblisy Apr 4, 2026
9bd4087
Add all RBY Trade Encounters (#1470)
notblisy Apr 5, 2026
8d631c1
Add GSC Trades (#1473)
notblisy Apr 7, 2026
f8c7d9f
feat: add new version and version group for Pokemon Champions
jemarq04 Apr 8, 2026
25405f8
feat: add new abilities added in Pokemon Champions
jemarq04 Apr 8, 2026
095f81b
feat: add known abilities to new mega evolutions
jemarq04 Apr 8, 2026
0ce2f87
Final batch of ORAS Mirage Spot Data (#1476)
ItsMeJoji Apr 8, 2026
e0e126d
fix: remove liberty garden basement encounters for electrode (#1479)
jemarq04 Apr 8, 2026
fefe6af
merge: Merge branch 'master' of github.com:pokeapi/pokeapi into feat/…
jemarq04 Apr 9, 2026
050fa27
Merge pull request #1480 from jemarq04/feat/add-new-mega-abilities
phalt Apr 10, 2026
4acff99
Add RSE Trades, remove non-zubat encounters from altering cave in Eme…
notblisy Apr 12, 2026
fee1f60
Fix gender_rate for DLC Pokémon (Dipplin, Loyal Three, Ogerpon, Terap…
santichausis Apr 12, 2026
45ec42c
Add X & Y Friend Safari Data (#1489)
ItsMeJoji Apr 18, 2026
42ae15b
adding pokemon from champions (#1491)
digitalghost-dev Apr 18, 2026
a0cb8d0
Add missing german pokedex entries (#1494)
helblinglilly Apr 18, 2026
1a6f9c0
Add CSV identifier validation with comprehensive error reporting (#1437)
LoicOuth Apr 19, 2026
4070d63
fix: Rename region_id and base_form_id to region and base_form in evo…
santichausis Apr 19, 2026
88f9f1e
Add regional form evolution details (#1492)
jemarq04 Apr 20, 2026
daf8f3c
Fix unicity of flavor texts and version names (#1490)
Dropries Apr 21, 2026
dc9389a
Add Japanese localization entries for forms and abilities from the la…
nikollson Apr 22, 2026
8cd6b1d
Fix duplicated names of Supersweet Syrup and French translations (#1502)
Dropries Apr 24, 2026
03aacac
Add feebas fishing tiles for gen iv (#1497)
Machine-Maker Apr 24, 2026
edbfc5e
fix: changed Weavile from Lumiose to Champions dex (#1505)
Lafoxnir Apr 25, 2026
566ce72
Remove all `[]()` placeholders (#1501)
Dropries Apr 25, 2026
f0093c1
fix(openapi): Mark Region.main_generation as nullable (#1486)
santichausis Apr 29, 2026
6465e03
Add missing evolution methods from pokemon scarlet and violet dlc and…
joos-too Apr 29, 2026
faa0280
fixed wrong language id in Metal Alloy item entry (#1511)
joos-too May 3, 2026
9432d4a
Add Hidden Grotto Encounter method, Location Areas, and Encounters. (…
coreyJim May 4, 2026
6b77758
Fix Maushold weights (#1513)
alchengan May 5, 2026
3295857
Add missing fossils for gen iv (#1495)
Machine-Maker May 6, 2026
4c6134c
Add Gen IV Great Marsh changing encounters (#1499)
Machine-Maker May 12, 2026
492fd4f
Add Gen IV honey tree encounters (#1498)
Machine-Maker May 13, 2026
0e745e2
Add Gen IV Headbutt encounters (#1520)
Machine-Maker May 20, 2026
1195e0f
feat: update CSVs with Legends ZA and Champions french pokedex names …
Lafoxnir May 20, 2026
e4cbf7a
Fix Hasura README link (#1529)
JJ80-spec May 23, 2026
3878ef1
Add BW2 in-game trades (#1524)
matthewchoy88 May 25, 2026
d89a8a1
Add Godot API wrapper repo link to README.md (#1526)
UbeJelly May 26, 2026
c6baded
Add missing evolution entries (#1525)
FreakMediaLP May 30, 2026
ac1a701
Add gen IV special encounters in trophy garden (#1528)
Machine-Maker May 30, 2026
7248bec
Remove duplicate moves from LA Porygon (#1535)
SnorlaxMonster Jun 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,20 @@
* Include a description of the proposed changes and how to test them.
* Consider adding the `no-deploy` label if this PR shouldn't be deployed and does not alter the data served by the API.
-->

# Change description

<!-- Add your change description here -->

## AI coding assistance disclosure

<!-- Provide details on how you used AI coding to assist you in this change -->

## Contributor check list

<!-- Your PR will not be reviewed until you have completed all these steps: -->

- [ ] I have written a description of the contribution and explained its motivation.
- [ ] I have written tests for my code changes (if applicable).
- [ ] I have read and understood the [AI Assisted Contribution guidelines](https://github.com/PokeAPI/pokeapi/blob/master/CONTRIBUTING.md#ai-assisted-coding).
- [ ] I will own this change in production, and I am prepared to fix any bugs caused by my code change.
21 changes: 18 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,30 @@ Simple!

## AI assisted coding

Using AI assisted coding tools for auto complete, test generation, etc is allowed so long as a human is the overall primary author of a pull request.
The types of AI-assisted coding that will be accepted:

- Scaffolding for common framework patterns
- Scaffolding for test patterns/test generation
- Mass file editing for tedious repetitive changes

The types of AI changes that will **NOT** be accepted:

- Fully automated code generation
- AI generated comments and responses in code review
- Lack of understanding of the change

Contributions from supervised AI assisted coding agents who build the majority (or all of) a change, such as [co pilot tasks](https://github.blog/changelog/2025-10-28-a-mission-control-to-assign-steer-and-track-copilot-coding-agent-tasks/), will be accepted only on the following basis:

1. A human can verifiably prove they have reviewed and checked that the contribution does what it says it does.
2. The human author provides evidence of the prompt given to the AI agent, and the logs of it producing the change. (For example - co pilot tasks produces a public log).
3. The human author explicitly calls out that an supervised AI agent created the change when they make a pull request.
2. If requested, the human author must provide evidence of the prompt given to the AI agent, and the logs of it producing the change. (For example - co pilot tasks produces a public log).
3. If requested, the human author explicitly calls out that an supervised AI agent created the change when they make a pull request.
4. The human author is prepared to own the change (just like any other change they make) and fix any issues that arise from it.

### Maintainers decision is final

If you cannot sufficiently demonstrate good use of AI tooling we will close your change.

We contribute to this project in our free time. Our time is valuable. Our time is not to be spent doing the thinking for you because you outsourced work to an LLM coding agent.

## Financial contributions

Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ make docker-make-migrations
make docker-migrate
```

## GraphQL <a id="graphql"></a> &nbsp; <a href="ttps://github.com/hasura/graphql-engine"><img height="29px" src="https://graphql-engine-cdn.hasura.io/img/powered_by_hasura_blue.svg"/></a>
## GraphQL <a id="graphql"></a> &nbsp; <a href="https://github.com/hasura/graphql-engine"><img height="29px" src="https://graphql-engine-cdn.hasura.io/img/powered_by_hasura_blue.svg"/></a>

When you start PokéAPI with the above Docker Compose setup, an [Hasura Engine](https://github.com/hasura/graphql-engine) server is started as well. It's possible to track all the PokeAPI tables and foreign keys by simply

Expand Down Expand Up @@ -172,6 +172,7 @@ This k8s setup creates all k8s resources inside the _Namespace_ `pokeapi`, run `
|Dart|[prathanbomb/pokedart](https://github.com/prathanbomb/pokedart)| |
|Go|[mtslzr/pokeapi-go](https://github.com/mtslzr/pokeapi-go)|Auto caching |
|Go|[JoshGuarino/PokeGo](https://github.com/JoshGuarino/PokeGo) |Auto caching |
|Godot|[UbeJelly/PokeDot](https://github.com/UbeJelly/PokeDot) | |
|Haxe|[KinoCreatesGames/poke-api](https://github.com/KinoCreatesGames/poke-api) |Auto caching |
|PHP |[lmerotta/phpokeapi](https://github.com/lmerotta/phpokeapi)|Auto caching, lazy loading |
|PowerShell|[Celerium/PokeAPI-PowerShellWrapper](https://github.com/Celerium/PokeAPI-PowerShellWrapper)| |
Expand Down
2 changes: 2 additions & 0 deletions Resources/docker/app/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ RUN apk add --no-cache --virtual .build-deps gcc g++ musl-dev \
python3 -m pip install -r requirements.txt --no-cache-dir

FROM python:3.13.7-alpine
# git is a dependency for the meta endpoint
RUN apk add --no-cache git

ENV PYTHONUNBUFFERED=1
ENV DJANGO_SETTINGS_MODULE='config.docker-compose'
Expand Down
53 changes: 15 additions & 38 deletions data/v2/build.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,32 +128,6 @@ def build_generic(model_classes, file_name, csv_record_to_objects):
model_class.objects.bulk_create(batch)


def scrub_str(string):
"""
The purpose of this function is to scrub the weird template mark-up out of strings
that Veekun is using for their pokedex.
Example:
[]{move:dragon-tail} will effect the opponents [HP]{mechanic:hp}.
Becomes:
dragon tail will effect the opponents HP.

If you find this results in weird strings please take a stab at improving or re-writing.
"""
groups = re.findall(GROUP_RGX, string)
for group in groups:
if group[0]:
sub = group[0]
else:
sub = group[1].split(":")
if len(sub) >= 2:
sub = sub[1]
else:
sub = sub[0]
sub = sub.replace("-", " ")
string = re.sub(SUB_RGX, sub, string, 1)
return string


##############
# LANGUAGE #
##############
Expand Down Expand Up @@ -351,8 +325,8 @@ def csv_record_to_objects(info):
yield AbilityEffectText(
ability_id=int(info[0]),
language_id=int(info[1]),
short_effect=scrub_str(info[2]),
effect=scrub_str(info[3]),
short_effect=info[2],
effect=info[3],
)

build_generic((AbilityEffectText,), "ability_prose.csv", csv_record_to_objects)
Expand All @@ -361,7 +335,7 @@ def csv_record_to_objects(info):
yield AbilityChangeEffectText(
ability_change_id=int(info[0]),
language_id=int(info[1]),
effect=scrub_str(info[2]),
effect=info[2],
)

build_generic(
Expand Down Expand Up @@ -473,7 +447,7 @@ def csv_record_to_objects(info):
yield ItemFlingEffectEffectText(
item_fling_effect_id=int(info[0]),
language_id=int(info[1]),
effect=scrub_str(info[2]),
effect=info[2],
)

build_generic(
Expand Down Expand Up @@ -531,8 +505,8 @@ def csv_record_to_objects(info):
yield ItemEffectText(
item_id=int(info[0]),
language_id=int(info[1]),
short_effect=scrub_str(info[2]),
effect=scrub_str(info[3]),
short_effect=info[2],
effect=info[3],
)

build_generic((ItemEffectText,), "item_prose.csv", csv_record_to_objects)
Expand Down Expand Up @@ -660,7 +634,10 @@ def csv_record_to_objects(info):
sprites[generation][game] = {
"name_icon": file_path_or_none(
f"types/{generation}/{game}/{info[0]}.png"
)
),
"symbol_icon": file_path_or_none(
f"types/{generation}/{game}/small/{info[0]}.png"
),
}

yield TypeSprites(type_id=int(info[0]), sprites=sprites)
Expand Down Expand Up @@ -747,8 +724,8 @@ def csv_record_to_objects(info):
yield MoveEffectEffectText(
move_effect_id=int(info[0]),
language_id=int(info[1]),
short_effect=scrub_str(info[2]),
effect=scrub_str(info[3]),
short_effect=info[2],
effect=info[3],
)

build_generic(
Expand All @@ -768,7 +745,7 @@ def csv_record_to_objects(info):
yield MoveEffectChangeEffectText(
move_effect_change_id=int(info[0]),
language_id=int(info[1]),
effect=scrub_str(info[2]),
effect=info[2],
)

build_generic(
Expand Down Expand Up @@ -917,7 +894,7 @@ def csv_record_to_objects(info):
yield MoveAttributeDescription(
move_attribute_id=int(info[0]),
language_id=int(info[1]),
description=scrub_str(info[3]),
description=info[3],
)

build_generic(
Expand Down Expand Up @@ -1388,7 +1365,7 @@ def csv_record_to_objects(info):
yield PokemonSpeciesDescription(
pokemon_species_id=int(info[0]),
language_id=int(info[1]),
description=scrub_str(info[2]),
description=info[2],
)

build_generic(
Expand Down
4 changes: 4 additions & 0 deletions data/v2/csv/abilities.csv
Original file line number Diff line number Diff line change
Expand Up @@ -306,6 +306,10 @@ id,identifier,generation_id,is_main_series
305,tera-shell,9,1
306,teraform-zero,9,1
307,poison-puppeteer,9,1
308,piercing-drill,9,1
309,dragonize,9,1
310,mega-sol,9,1
311,spicy-spray,9,1
10001,mountaineer,5,0
10002,wave-rider,5,0
10003,skater,5,0
Expand Down
Loading
Loading