Wrapper for PokeAPI; written in Go.
Wrapper for Poke API, written in Go. Supports PokeAPI v2.
Full API documentation can be found at Poke API.
go get github.com/mtslzr/pokeapi-go
import "github.com/mtslzr/pokeapi-go"
b := pokeapi.Resource("berry")
Must pass an ID (e.g. "1") or name (e.g. "cheri").
b := pokeapi.Berry("cheri")
b := pokeapi.Resource("berry-firmness")
Must pass an ID (e.g. "1") or name (e.g. "very-soft").
b := pokeapi.BerryFirmness("very-soft")
b := pokeapi.Resource("berry-flavor")
Must pass an ID (e.g. "1") or name (e.g. "spicy").
b := pokeapi.BerryFlavor("spicy")
c := pokeapi.Resource("berry")
Must pass an ID (e.g. "1") or name (e.g. "cool").
c := pokeapi.ContestType("cool")
c := pokeapi.Resource("contest-effect")
Must pass an ID (e.g. "1").
c := pokeapi.ContestEffect("1")
c := pokeapi.Resource("super-contest-effect")
Must pass an ID (e.g. "1").
c := pokeapi.SuperContestEffect("1")
e := pokeapi.Resource("encounter-method")
Must pass an ID (e.g. "1") or name (e.g. "walk").
e := pokeapi.EncounterMethod("walk")
e := pokeapi.Resource("encounter-condition")
Must pass an ID (e.g. "1") or name (e.g. "swarm").
e := pokeapi.EncounterCondition("swarm")
e := pokeapi.Resource("encounter-condition-value")
Must pass an ID (e.g. "1") or name (e.g. "swarm-yes").
e := pokeapi.EncounterConditionValue("swarm-yes")
e := pokeapi.Resource("evolution-chain")
Must pass an ID (e.g. "1").
e := pokeapi.EvolutionChain("1")
e := pokeapi.Resource("evolution-trigger")
Must pass an ID (e.g. "1") or name (e.g. "level-up").
e := pokeapi.EvolutionTrigger("level-up")
g := pokeapi.Resource("generation")
Must pass an ID (e.g. "1") or name (e.g. "generation-i").
g := pokeapi.Generation("generation-i")
g := pokeapi.Resource("pokedex")
Must pass an ID (e.g. "1") or name (e.g. "national").
g := pokeapi.Pokedex("national")
g := pokeapi.Resource("version")
Must pass an ID (e.g. "1") or name (e.g. "red").
g := pokeapi.Version("red")
g := pokeapi.Resource("version-group")
Must pass an ID (e.g. "1") or name (e.g. "red-blue").
g := pokeapi.VersionGroup("red-blue")
i := pokeapi.Resource("item")
Must pass an ID (e.g. "1") or name (e.g. "master-ball").
i := pokeapi.Item("master-ball")
i := pokeapi.Resource("item-attribute")
Must pass an ID (e.g. "1") or name (e.g. "countable").
i := pokeapi.ItemAttribute("countable")
i := pokeapi.Resource("item-category")
Must pass an ID (e.g. "1") or name (e.g. "stat-boosts").
i := pokeapi.ItemCategory("stat-boosts")
i := pokeapi.Resource("item-fling-effect")
Must pass an ID (e.g. "1") or name (e.g. "badly-poison").
i := pokeapi.ItemFlingEffect("badly-poison")
i := pokeapi.Resource("item-pocket")
Must pass an ID (e.g. "1") or name (e.g. "misc").
i := pokeapi.ItemPocket("misc")
l := pokeapi.Resource("location")
Must pass an ID (e.g. "1") or name (e.g. "canalave-city").
l := pokeapi.Location("canalave-city")
l := pokeapi.Resource("location-area")
Must pass an ID (e.g. "1") or name (e.g. "canalave-city-area").
l := pokeapi.LocationArea("canalave-city-area")
l := pokeapi.Resource("pal-park-area")
Must pass an ID (e.g. "1") or name (e.g. "forest").
l := pokeapi.PalParkArea("forest")
l := pokeapi.Resource("region")
Must pass an ID (e.g. "1") or name (e.g. "kanto").
l := pokeapi.Region("kanto")
m := pokeapi.Resource("machine")
Must pass an ID (e.g. "1").
m := pokeapi.Machine("1")
m := pokeapi.Resource("move")
Must pass an ID (e.g. "1") or name (e.g. "pound").
m := pokeapi.Move("pound")
m := pokeapi.Resource("move-ailment")
Must pass an ID (e.g. "1") or name (e.g. "paralysis").
m := pokeapi.MoveAilment("paralysis")
m := pokeapi.Resource("move-battle-style")
Must pass an ID (e.g. "1") or name (e.g. "attack").
m := pokeapi.MoveBattleStyle("attack")
m := pokeapi.Resource("move-catgory")
Must pass an ID (e.g. "1") or name (e.g. "ailment").
m := pokeapi.MoveCategory("ailment")
m := pokeapi.Resource("move-damage-class")
Must pass an ID (e.g. "1") or name (e.g. "status").
m := pokeapi.MoveDamageClass("status")
m := pokeapi.Resource("move-learn-method")
Must pass an ID (e.g. "1") or name (e.g. "level-up").
m := pokeapi.MoveLearnMethod("level-up")
m := pokeapi.Resource("move-target")
Must pass an ID (e.g. "1") or name (e.g. "specific-move").
m := pokeapi.MoveTarget("specific-move")
p := pokeapi.Resource("ability")
Must pass an ID (e.g. "1") or name (e.g. "stench").
p := pokeapi.Ability("stench")
p := pokeapi.Resource("characteristic")
Must pass an ID (e.g. "1").
p := pokeapi.Characteristic("1")
p := pokeapi.Resource("egg-group")
Must pass an ID (e.g. "1") or name (e.g. "monster").
p := pokeapi.EggGroup("monster")
p := pokeapi.Resource("gender")
Must pass an ID (e.g. "1") or name (e.g. "female").
p := pokeapi.Gender("female")
p := pokeapi.Resource("growth-rate")
Must pass an ID (e.g. "1") or name (e.g. "slow").
p := pokeapi.GrowthRate("slow")
p := pokeapi.Resource("nature")
Must pass an ID (e.g. "1") or name (e.g. "hardy").
p := pokeapi.Nature("hardy")
p := pokeapi.Resource("pokeathlon-stat")
Must pass an ID (e.g. "1") or name (e.g. "speed").
p := pokeapi.PokeathlonStat("speed")
l := pokeapi.Resource("pokemon")
Must pass an ID (e.g. "1") or name (e.g. "bulbasaur").
l := pokeapi.Pokemon("bulabsaur")
p := pokeapi.Resource("pokemon-color")
Must pass an ID (e.g. "1") or name (e.g. "black").
p := pokeapi.PokemonColor("black")
p := pokeapi.Resource("pokemon-form")
Must pass an ID (e.g. "1") or name (e.g. "bulbasaur").
p := pokeapi.PokemonForm("bulabsaur")
p := pokeapi.Resource("pokemon-habitat")
Must pass an ID (e.g. "1") or name (e.g. "cave").
p := pokeapi.PokemonHabitat("cave")
p := pokeapi.Resource("pokemon-shape")
Must pass an ID (e.g. "1") or name (e.g. "ball").
p := pokeapi.PokemonShape("ball")
p := pokeapi.Resource("pokemon-species")
Must pass an ID (e.g. "1") or name (e.g. "bulbasaur").
p := pokeapi.PokemonSpecies("bulabsaur")
p := pokeapi.Resource("stat")
Must pass an ID (e.g. "1") or name (e.g. "hp").
p := pokeapi.Stat("hp")
p := pokeapi.Resource("type")
Must pass an ID (e.g. "1") or name (e.g. "normal").
p := pokeapi.Type("normal")
u := pokeapi.Resource("language")
Must pass an ID (e.g. "1") or name (e.g. "en").
u := pokeapi.Language("en")
When calling pokeapi.Resource()
for any resource list, you can optionally pass up to two integers. The first will be an offset (defaults to zero), and the second will be the limit (defaults two twenty).
r := pokeapi.Resource("pokemon")
fmt.Println(len(r.Results)) // 20
fmt.Println(r.Results[0].Name) // "bulbasaur"
r := pokeapi.Resource("pokemon", 3)
fmt.Println(len(r.Results)) // 20
fmt.Println(r.Results[0].Name) // "charmander"
r := pokeapi.Resource("pokemon", 6, 10)
fmt.Println(len(r.Results)) // 10
fmt.Println(r.Results[0].Name) // "squirtle"
As an alternative to pokeapi.Resource()
, you can use Search to filter resource lists. Pass the endpoint, followed by the search term. Or pass a string starting with ^
to search for items starting with the search team.
result.Count is updated after the search with the new total (to get the full count, use pokeapi.Resource()
.
s := pokeapi.Search("pokemon", "saur")
fmt.Println(len(s.Results)) // 4
fmt.Println(s.Results[3].Name) // venusaur-mega
s := pokeapi.Search("pokemon", "^a")
fmt.Println(len(s.Results)) // 44
fmt.Println(s.Results[0].Name) // arbok
s := pokeapi.Search("pokemon", "^bulb")
fmt.Println(len(s.Results)) // 1
fmt.Println(s.Results[0].Name) // bulbasaur
Calls are automatically cached to cut down on API traffic to PokeAPI, with subsequent calls returning local data.
// Clear all existing cache entries.
pokeapi.ClearCache()
Custom cache expiration remains for all calls until changed or unset.
// Set cache expiration to twenty minutes.
pokeapi.CacheSettings.CustomExpire = 20
// Turn custom expiration back off.
pokeapi.CacheSettings.CustomExpire = 0
Please be considerate of PokeAPI and be sure to always operate within this requested limits.
As with custom expiration, this setting remains for all calls until changed or unset.
// Disable checking for cached data
pokeapi.CacheSettings.UseCache = false
// Re-enable checking for cached data
pokeapi.CacheSettings.UseCache = true