API wrapper for Poke API, written in Go. Supports PokeAPI v2. Inspired by PokeAPI-GO
All API endpoints is following the official PokeAPI documentation as of October 29, 2024, including all official type.
- Importing the package
go get github.com/hanle23/pokego
- Example
client := pokego.NewClient()
pokemon, err := client.Pokemon("pikachu")
if err != nil {
log.Fatal(err)
}
fmt.Println(pokemon.Name)
- Initialize a client is required to use the API
client := pokego.NewClient()
- Client is following singleton pattern, so you can use the same client for all API endpoints
pokemon, err := client.Pokemon("pikachu")
if err != nil {
log.Fatal(err)
}
- Client can have custom configuration (except for base URL)
client := pokego.NewClient(
WithUseCache(false),
WithExpireTime(5 * time.Minute),
)
Berries
Must pass ID or Name (string)
result, err := client.Berry("cheri")
Must pass offset and limit (string)
result, err := client.Berries("0", "20")
Berry Firmnesses
Must pass ID or Name (string)
result, err := client.BerryFirmness("very-soft")
Must pass offset and limit (string)
result, err := client.BerryFirmnesses("0", "20")
Berry Flavors
Must pass ID or Name (string)
result, err := client.BerryFlavor("spicy")
Must pass offset and limit (string)
result, err := client.BerryFlavors("0", "20")
Contest Types
Must pass ID or Name (string)
result, err := client.ContestType("cool")
Must pass offset and limit (string)
result, err := client.ContestTypes("0", "20")
Contest Types
Must pass ID (string)
result, err := client.ContestEffect("1")
Must pass offset and limit (string)
result, err := client.ContestEffects("0", "20")
Super Contest Effects
Must pass ID (string)
result, err := client.SuperContestEffect("1")
Must pass offset and limit (string)
result, err := client.SuperContestEffects("0", "20")
Encounter Method
Must pass ID or Name (string)
result, err := client.EncounterMethod("walk")
Must pass offset and limit (string)
result, err := client.EncounterMethods("0", "20")
Encounter Conditions
Must pass ID or Name (string)
result, err := client.EncounterCondition("swarm")
Must pass offset and limit (string)
result, err := client.EncounterConditions("0", "20")
Encounter Condition Values
Must pass ID or Name (string)
result, err := client.EncounterConditionValue("swarm-yes")
Must pass offset and limit (string)
result, err := client.EncounterConditionValues("0", "20")
Evolution Chains
Must pass ID (string)
result, err := client.EvolutionChain("1")
Must pass offset and limit (string)
result, err := client.EvolutionChains("0", "20")
Evolution Triggers
Must pass ID or Name (string)
result, err := client.EvolutionTrigger("level-up")
Must pass offset and limit (string)
result, err := client.EvolutionTriggers("0", "20")
Generation
Must pass ID or Name (string)
result, err := client.Generation("generation-i")
Must pass offset and limit (string)
result, err := client.Generations("0", "20")
Pokedex
Must pass ID or Name (string)
result, err := client.Pokedex("kanto")
Must pass offset and limit (string)
result, err := client.Pokedexes("0", "20")
Version
Must pass ID or Name (string)
result, err := client.Version("red")
Must pass offset and limit (string)
result, err := client.Versions("0", "20")
Version Groups
Must pass ID or Name (string)
result, err := client.VersionGroup("red-blue")
Must pass offset and limit (string)
result, err := client.VersionGroups("0", "20")
Items
Must pass ID or Name (string)
result, err := client.Item("master-ball")
Must pass offset and limit (string)
result, err := client.Items("0", "20")
Item Attributes
Must pass ID or Name (string)
result, err := client.ItemAttribute("countable")
Must pass offset and limit (string)
result, err := client.ItemAttributes("0", "20")
Item Categories
Must pass ID or Name (string)
result, err := client.ItemCategory("stat-boosts")
Must pass offset and limit (string)
result, err := client.ItemCategories("0", "20")
Item Fling Effects
Must pass ID or Name (string)
result, err := client.ItemFlingEffect("badly-poison")
Must pass offset and limit (string)
result, err := client.ItemFlingEffects("0", "20")
Item Pockets
Must pass ID or Name (string)
result, err := client.ItemPocket("misc")
Must pass offset and limit (string)
result, err := client.ItemPockets("0", "20")
Locations
Must pass ID or Name (string)
result, err := client.Location("canalave-city")
Must pass offset and limit (string)
result, err := client.Locations("0", "20")
Location Areas
Must pass ID or Name (string)
result, err := client.LocationArea("canalave-city-area")
Must pass offset and limit (string)
result, err := client.LocationArea("0", "20")
Pal Park Areas
Must pass ID or Name (string)
result, err := client.PalParkArea("forest")
Must pass offset and limit (string)
result, err := client.LocationArea("0", "20")
Regions
Must pass ID or Name (string)
result, err := client.Region("kanto")
Must pass offset and limit (string)
result, err := client.Regions("0", "20")
Machines
Must pass ID or Name (string)
result, err := client.Machine("pound")
Must pass offset and limit (string)
result, err := client.Machines("0", "20")
Moves
Must pass ID or Name (string)
result, err := client.Move("pound")
Must pass offset and limit (string)
result, err := client.Moves("0", "20")
Move Ailment
Must pass ID or Name (string)
result, err := client.MoveAilment("paralysis")
Must pass offset and limit (string)
result, err := client.MoveAilments("0", "20")
Move Battle Styles
Must pass ID or Name (string)
result, err := client.MoveBattleStyle("attack")
Must pass offset and limit (string)
result, err := client.MoveBattleStyles("0", "20")
Move Category
Must pass ID or Name (string)
result, err := client.MoveCategory("ailment")
Must pass offset and limit (string)
result, err := client.MoveCategories("0", "20")
Move Damage Class
Must pass ID or Name (string)
result, err := client.MoveDamageClass("status")
Must pass offset and limit (string)
result, err := client.MoveDamageClasses("0", "20")
Move Learn Method
Must pass ID or Name (string)
result, err := client.MoveLearnMethod("level-up")
Must pass offset and limit (string)
result, err := client.MoveLearnMethods("0", "20")
Move Targets
Must pass ID or Name (string)
result, err := client.MoveTarget("specific-move")
Must pass offset and limit (string)
result, err := client.MoveTargets("0", "20")
Abilities
Must pass ID or Name (string)
result, err := client.Ability("stench")
Must pass offset and limit (string)
result, err := client.Abilities("0", "20")
Characteristics
Must pass ID (string)
result, err := client.Characteristic("1")
Must pass offset and limit (string)
result, err := client.Characteristics("0", "20")
Egg Groups
Must pass ID or Name (string)
result, err := client.EggGroup("monster")
Must pass offset and limit (string)
result, err := client.EggGroups("0", "20")
Genders
Must pass ID or Name (string)
result, err := client.Gender("female")
Must pass offset and limit (string)
result, err := client.Genders("0", "20")
Growth Rates
Must pass ID or Name (string)
result, err := client.GrowthRate("slow")
Must pass offset and limit (string)
result, err := client.GrowthRates("0", "20")
Natures
Must pass ID or Name (string)
result, err := client.Nature("bold")
Must pass offset and limit (string)
result, err := client.Natures("0", "20")
Pokeathlon Stats
Must pass ID or Name (string)
result, err := client.PokeathlonStat("speed")
Must pass offset and limit (string)
result, err := client.PokeathlonStats("0", "20")
Pokemons
Must pass ID or Name (string)
result, err := client.Pokemon("clefairy")
Must pass offset and limit (string)
result, err := client.Pokemons("0", "20")
Pokemon Location Areas
Must pass ID or Name (string)
result, err := client.PokemonLocationAreas("clefairy")
Pokemon Colors
Must pass ID or Name (string)
result, err := client.PokemonColor("black")
Must pass offset and limit (string)
result, err := client.PokemonColors("0", "20")
Pokemon Forms
Must pass ID or Name (string)
result, err := client.PokemonForm("arceus-bug")
Must pass offset and limit (string)
result, err := client.PokemonForms("0", "20")
Pokemon Habitats
Must pass ID or Name (string)
result, err := client.PokemonHabitat("cave")
Must pass offset and limit (string)
result, err := client.PokemonHabitats("0", "20")
Pokemon Shapes
Must pass ID or Name (string)
result, err := client.PokemonShape("ball")
Must pass offset and limit (string)
result, err := client.PokemonShapes("0", "20")
Pokemon Species
Must pass ID or Name (string)
result, err := client.PokemonSpecies("wormadam")
Must pass offset and limit (string)
result, err := client.PokemonSpeciesPagination("0", "20")
Stats
Must pass ID or Name (string)
result, err := client.Stat("attack")
Must pass offset and limit (string)
result, err := client.Stats("0", "20")
Types
Must pass ID or Name (string)
result, err := client.Type("ground")
Must pass offset and limit (string)
result, err := client.Stats("0", "20")
Languages
Must pass ID or Name (string)
result, err := client.Language("ja")
Must pass offset and limit (string)
result, err := client.Languages("0", "20")
- Config options is currently unable to change on the fly, if you want to change config setting, make sure to removeClient first and do NewClient
client := pokego.NewClient(
WithUseCache(false),
WithExpireTime(5 * time.Minute),
)
RemoveClient()
client = pokego.NewClient(
WithUseCache(true),
WithExpireTime(10 * time.Minute),
)
- If there are some issue with the client, you can also try to Reset the client (keep all currentl config) or remove and recreate
client.ResetClient()
client.RemoveClient()
client = pokego.NewClient()
- If there is a specific query that you want to make and not available in the package, you can use the
Fetch
method
result, err := client.Fetch("/berry/1/")
- Or when you want to get all available endpoints
result, err := client.Fetch("")