openapi: 3.1.0 info: title: Poké Berries Machines API description: PokéAPI v2 is a free, open-source RESTful API serving comprehensive Pokémon data — species, abilities, moves, items, types, locations, evolution chains, encounters, berries, contests, games, and machines. All endpoints are GET-only and require no authentication. Please cache resources locally; rate limits were removed in 2018 but persistent abusers may be IP-banned. version: '2' contact: name: PokéAPI Maintainers url: https://pokeapi.co license: name: BSD-3-Clause url: https://github.com/PokeAPI/pokeapi/blob/master/LICENSE.md servers: - url: https://pokeapi.co/api/v2 description: PokéAPI v2 production base URL tags: - name: Machines description: Items that teach moves to Pokémon (TMs and HMs). paths: /machine: get: tags: - Machines summary: List Machines description: List all machines. operationId: listMachines parameters: - $ref: '#/components/parameters/Limit' - $ref: '#/components/parameters/Offset' responses: '200': description: A paginated list of machine resources. content: application/json: schema: $ref: '#/components/schemas/APIResourceList' /machine/{id}: get: tags: - Machines summary: Get Machine description: Retrieve a single machine by id. operationId: getMachine parameters: - $ref: '#/components/parameters/IntegerId' responses: '200': description: A single machine resource. content: application/json: schema: $ref: '#/components/schemas/Machine' components: schemas: NamedAPIResource: type: object properties: name: type: string description: Slug name of the referenced resource. url: type: string format: uri description: Canonical URL of the referenced resource. APIResource: type: object properties: url: type: string format: uri description: Canonical URL of the referenced resource. APIResourceList: type: object properties: count: type: integer next: type: string nullable: true format: uri previous: type: string nullable: true format: uri results: type: array items: $ref: '#/components/schemas/APIResource' Machine: type: object properties: id: type: integer item: $ref: '#/components/schemas/NamedAPIResource' move: $ref: '#/components/schemas/NamedAPIResource' version_group: $ref: '#/components/schemas/NamedAPIResource' parameters: IntegerId: name: id in: path required: true description: Resource id (integer only). schema: type: integer Limit: name: limit in: query required: false description: Number of items to return per page. schema: type: integer minimum: 1 maximum: 100000 default: 20 Offset: name: offset in: query required: false description: Number of items to skip before starting to collect the result set. schema: type: integer minimum: 0 default: 0