Platzi Fake Store API · Capability

Platzi Fake Store API

A free, fake REST API for testing and prototyping e-commerce or shopping site applications. Provides products, categories, users, files, and JWT authentication endpoints.

Run with Naftiko PlatziFakeStoreApiAPI

What You Can Do

GET
Listproducts — List products
/products
POST
Createproduct — Create product
/products
GET
Getproduct — Get product by id
/products/{id}
PUT
Updateproduct — Update product
/products/{id}
DELETE
Deleteproduct — Delete product
/products/{id}
GET
Getproductbyslug — Get product by slug
/products/slug/{slug}
GET
Getrelatedproducts — Get related products by id
/products/{id}/related
GET
Getrelatedproductsbyslug — Get related products by slug
/products/slug/{slug}/related
GET
Listcategories — List categories
/categories
POST
Createcategory — Create category
/categories
GET
Getcategory — Get category
/categories/{id}
PUT
Updatecategory — Update category
/categories/{id}
DELETE
Deletecategory — Delete category
/categories/{id}
GET
Getcategorybyslug — Get category by slug
/categories/slug/{slug}
GET
Listcategoryproducts — List products in a category
/categories/{id}/products
GET
Listusers — List users
/users
POST
Createuser — Create user
/users
GET
Getuser — Get user
/users/{id}
PUT
Updateuser — Update user
/users/{id}
POST
Checkemailavailability — Check email availability
/users/is-available
POST
Login — Login and obtain JWT tokens
/auth/login
GET
Getprofile — Get authenticated user profile
/auth/profile
POST
Refreshtoken — Refresh access token
/auth/refresh-token
POST
Uploadfile — Upload a file
/files/upload
GET
Getfile — Retrieve uploaded file
/files/{filename}

MCP Tools

listproducts

List products

read-only idempotent
createproduct

Create product

getproduct

Get product by id

read-only idempotent
updateproduct

Update product

idempotent
deleteproduct

Delete product

idempotent
getproductbyslug

Get product by slug

read-only idempotent
getrelatedproducts

Get related products by id

read-only idempotent
getrelatedproductsbyslug

Get related products by slug

read-only idempotent
listcategories

List categories

read-only idempotent
createcategory

Create category

getcategory

Get category

read-only idempotent
updatecategory

Update category

idempotent
deletecategory

Delete category

idempotent
getcategorybyslug

Get category by slug

read-only idempotent
listcategoryproducts

List products in a category

read-only idempotent
listusers

List users

read-only idempotent
createuser

Create user

getuser

Get user

read-only idempotent
updateuser

Update user

idempotent
checkemailavailability

Check email availability

login

Login and obtain JWT tokens

getprofile

Get authenticated user profile

read-only idempotent
refreshtoken

Refresh access token

uploadfile

Upload a file

getfile

Retrieve uploaded file

read-only idempotent

Capability Spec

platzi-fake-store-api-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Platzi Fake Store API
  description: A free, fake REST API for testing and prototyping e-commerce or shopping site applications. Provides products,
    categories, users, files, and JWT authentication endpoints.
  tags:
  - Platzi
  - Fake
  - Store
  - Api
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: platzi-fake-store-api
    baseUri: https://api.escuelajs.co/api/v1
    description: Platzi Fake Store API HTTP API.
    authentication:
      type: bearer
      token: '{{PLATZI_FAKE_STORE_API_TOKEN}}'
    resources:
    - name: products
      path: /products
      operations:
      - name: listproducts
        method: GET
        description: List products
        inputParameters:
        - name: offset
          in: query
          type: integer
        - name: limit
          in: query
          type: integer
        - name: title
          in: query
          type: string
        - name: price
          in: query
          type: number
        - name: price_min
          in: query
          type: number
        - name: price_max
          in: query
          type: number
        - name: categoryId
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createproduct
        method: POST
        description: Create product
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: products-id
      path: /products/{id}
      operations:
      - name: getproduct
        method: GET
        description: Get product by id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateproduct
        method: PUT
        description: Update product
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deleteproduct
        method: DELETE
        description: Delete product
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: products-slug-slug
      path: /products/slug/{slug}
      operations:
      - name: getproductbyslug
        method: GET
        description: Get product by slug
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: products-id-related
      path: /products/{id}/related
      operations:
      - name: getrelatedproducts
        method: GET
        description: Get related products by id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: products-slug-slug-related
      path: /products/slug/{slug}/related
      operations:
      - name: getrelatedproductsbyslug
        method: GET
        description: Get related products by slug
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: categories
      path: /categories
      operations:
      - name: listcategories
        method: GET
        description: List categories
        inputParameters:
        - name: limit
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createcategory
        method: POST
        description: Create category
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: categories-id
      path: /categories/{id}
      operations:
      - name: getcategory
        method: GET
        description: Get category
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updatecategory
        method: PUT
        description: Update category
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletecategory
        method: DELETE
        description: Delete category
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: categories-slug-slug
      path: /categories/slug/{slug}
      operations:
      - name: getcategorybyslug
        method: GET
        description: Get category by slug
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: categories-id-products
      path: /categories/{id}/products
      operations:
      - name: listcategoryproducts
        method: GET
        description: List products in a category
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users
      path: /users
      operations:
      - name: listusers
        method: GET
        description: List users
        inputParameters:
        - name: limit
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createuser
        method: POST
        description: Create user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-id
      path: /users/{id}
      operations:
      - name: getuser
        method: GET
        description: Get user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateuser
        method: PUT
        description: Update user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-is-available
      path: /users/is-available
      operations:
      - name: checkemailavailability
        method: POST
        description: Check email availability
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: auth-login
      path: /auth/login
      operations:
      - name: login
        method: POST
        description: Login and obtain JWT tokens
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: auth-profile
      path: /auth/profile
      operations:
      - name: getprofile
        method: GET
        description: Get authenticated user profile
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: auth-refresh-token
      path: /auth/refresh-token
      operations:
      - name: refreshtoken
        method: POST
        description: Refresh access token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: files-upload
      path: /files/upload
      operations:
      - name: uploadfile
        method: POST
        description: Upload a file
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: files-filename
      path: /files/{filename}
      operations:
      - name: getfile
        method: GET
        description: Retrieve uploaded file
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: platzi-fake-store-api-rest
    description: REST adapter for Platzi Fake Store API.
    resources:
    - path: /products
      name: listproducts
      operations:
      - method: GET
        name: listproducts
        description: List products
        call: platzi-fake-store-api.listproducts
        outputParameters:
        - type: object
          mapping: $.
    - path: /products
      name: createproduct
      operations:
      - method: POST
        name: createproduct
        description: Create product
        call: platzi-fake-store-api.createproduct
        outputParameters:
        - type: object
          mapping: $.
    - path: /products/{id}
      name: getproduct
      operations:
      - method: GET
        name: getproduct
        description: Get product by id
        call: platzi-fake-store-api.getproduct
        outputParameters:
        - type: object
          mapping: $.
    - path: /products/{id}
      name: updateproduct
      operations:
      - method: PUT
        name: updateproduct
        description: Update product
        call: platzi-fake-store-api.updateproduct
        outputParameters:
        - type: object
          mapping: $.
    - path: /products/{id}
      name: deleteproduct
      operations:
      - method: DELETE
        name: deleteproduct
        description: Delete product
        call: platzi-fake-store-api.deleteproduct
        outputParameters:
        - type: object
          mapping: $.
    - path: /products/slug/{slug}
      name: getproductbyslug
      operations:
      - method: GET
        name: getproductbyslug
        description: Get product by slug
        call: platzi-fake-store-api.getproductbyslug
        outputParameters:
        - type: object
          mapping: $.
    - path: /products/{id}/related
      name: getrelatedproducts
      operations:
      - method: GET
        name: getrelatedproducts
        description: Get related products by id
        call: platzi-fake-store-api.getrelatedproducts
        outputParameters:
        - type: object
          mapping: $.
    - path: /products/slug/{slug}/related
      name: getrelatedproductsbyslug
      operations:
      - method: GET
        name: getrelatedproductsbyslug
        description: Get related products by slug
        call: platzi-fake-store-api.getrelatedproductsbyslug
        outputParameters:
        - type: object
          mapping: $.
    - path: /categories
      name: listcategories
      operations:
      - method: GET
        name: listcategories
        description: List categories
        call: platzi-fake-store-api.listcategories
        outputParameters:
        - type: object
          mapping: $.
    - path: /categories
      name: createcategory
      operations:
      - method: POST
        name: createcategory
        description: Create category
        call: platzi-fake-store-api.createcategory
        outputParameters:
        - type: object
          mapping: $.
    - path: /categories/{id}
      name: getcategory
      operations:
      - method: GET
        name: getcategory
        description: Get category
        call: platzi-fake-store-api.getcategory
        outputParameters:
        - type: object
          mapping: $.
    - path: /categories/{id}
      name: updatecategory
      operations:
      - method: PUT
        name: updatecategory
        description: Update category
        call: platzi-fake-store-api.updatecategory
        outputParameters:
        - type: object
          mapping: $.
    - path: /categories/{id}
      name: deletecategory
      operations:
      - method: DELETE
        name: deletecategory
        description: Delete category
        call: platzi-fake-store-api.deletecategory
        outputParameters:
        - type: object
          mapping: $.
    - path: /categories/slug/{slug}
      name: getcategorybyslug
      operations:
      - method: GET
        name: getcategorybyslug
        description: Get category by slug
        call: platzi-fake-store-api.getcategorybyslug
        outputParameters:
        - type: object
          mapping: $.
    - path: /categories/{id}/products
      name: listcategoryproducts
      operations:
      - method: GET
        name: listcategoryproducts
        description: List products in a category
        call: platzi-fake-store-api.listcategoryproducts
        outputParameters:
        - type: object
          mapping: $.
    - path: /users
      name: listusers
      operations:
      - method: GET
        name: listusers
        description: List users
        call: platzi-fake-store-api.listusers
        outputParameters:
        - type: object
          mapping: $.
    - path: /users
      name: createuser
      operations:
      - method: POST
        name: createuser
        description: Create user
        call: platzi-fake-store-api.createuser
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{id}
      name: getuser
      operations:
      - method: GET
        name: getuser
        description: Get user
        call: platzi-fake-store-api.getuser
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{id}
      name: updateuser
      operations:
      - method: PUT
        name: updateuser
        description: Update user
        call: platzi-fake-store-api.updateuser
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/is-available
      name: checkemailavailability
      operations:
      - method: POST
        name: checkemailavailability
        description: Check email availability
        call: platzi-fake-store-api.checkemailavailability
        outputParameters:
        - type: object
          mapping: $.
    - path: /auth/login
      name: login
      operations:
      - method: POST
        name: login
        description: Login and obtain JWT tokens
        call: platzi-fake-store-api.login
        outputParameters:
        - type: object
          mapping: $.
    - path: /auth/profile
      name: getprofile
      operations:
      - method: GET
        name: getprofile
        description: Get authenticated user profile
        call: platzi-fake-store-api.getprofile
        outputParameters:
        - type: object
          mapping: $.
    - path: /auth/refresh-token
      name: refreshtoken
      operations:
      - method: POST
        name: refreshtoken
        description: Refresh access token
        call: platzi-fake-store-api.refreshtoken
        outputParameters:
        - type: object
          mapping: $.
    - path: /files/upload
      name: uploadfile
      operations:
      - method: POST
        name: uploadfile
        description: Upload a file
        call: platzi-fake-store-api.uploadfile
        outputParameters:
        - type: object
          mapping: $.
    - path: /files/{filename}
      name: getfile
      operations:
      - method: GET
        name: getfile
        description: Retrieve uploaded file
        call: platzi-fake-store-api.getfile
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: platzi-fake-store-api-mcp
    transport: http
    description: MCP adapter for Platzi Fake Store API for AI agent use.
    tools:
    - name: listproducts
      description: List products
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platzi-fake-store-api.listproducts
      with:
        offset: tools.offset
        limit: tools.limit
        title: tools.title
        price: tools.price
        price_min: tools.price_min
        price_max: tools.price_max
        categoryId: tools.categoryId
      inputParameters:
      - name: offset
        type: integer
        description: offset
      - name: limit
        type: integer
        description: limit
      - name: title
        type: string
        description: title
      - name: price
        type: number
        description: price
      - name: price_min
        type: number
        description: price_min
      - name: price_max
        type: number
        description: price_max
      - name: categoryId
        type: integer
        description: categoryId
      outputParameters:
      - type: object
        mapping: $.
    - name: createproduct
      description: Create product
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platzi-fake-store-api.createproduct
      outputParameters:
      - type: object
        mapping: $.
    - name: getproduct
      description: Get product by id
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platzi-fake-store-api.getproduct
      outputParameters:
      - type: object
        mapping: $.
    - name: updateproduct
      description: Update product
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: platzi-fake-store-api.updateproduct
      outputParameters:
      - type: object
        mapping: $.
    - name: deleteproduct
      description: Delete product
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: platzi-fake-store-api.deleteproduct
      outputParameters:
      - type: object
        mapping: $.
    - name: getproductbyslug
      description: Get product by slug
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platzi-fake-store-api.getproductbyslug
      outputParameters:
      - type: object
        mapping: $.
    - name: getrelatedproducts
      description: Get related products by id
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platzi-fake-store-api.getrelatedproducts
      outputParameters:
      - type: object
        mapping: $.
    - name: getrelatedproductsbyslug
      description: Get related products by slug
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platzi-fake-store-api.getrelatedproductsbyslug
      outputParameters:
      - type: object
        mapping: $.
    - name: listcategories
      description: List categories
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platzi-fake-store-api.listcategories
      with:
        limit: tools.limit
      inputParameters:
      - name: limit
        type: integer
        description: limit
      outputParameters:
      - type: object
        mapping: $.
    - name: createcategory
      description: Create category
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platzi-fake-store-api.createcategory
      outputParameters:
      - type: object
        mapping: $.
    - name: getcategory
      description: Get category
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platzi-fake-store-api.getcategory
      outputParameters:
      - type: object
        mapping: $.
    - name: updatecategory
      description: Update category
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: platzi-fake-store-api.updatecategory
      outputParameters:
      - type: object
        mapping: $.
    - name: deletecategory
      description: Delete category
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: platzi-fake-store-api.deletecategory
      outputParameters:
      - type: object
        mapping: $.
    - name: getcategorybyslug
      description: Get category by slug
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platzi-fake-store-api.getcategorybyslug
      outputParameters:
      - type: object
        mapping: $.
    - name: listcategoryproducts
      description: List products in a category
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platzi-fake-store-api.listcategoryproducts
      outputParameters:
      - type: object
        mapping: $.
    - name: listusers
      description: List users
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platzi-fake-store-api.listusers
      with:
        limit: tools.limit
      inputParameters:
      - name: limit
        type: integer
        description: limit
      outputParameters:
      - type: object
        mapping: $.
    - name: createuser
      description: Create user
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platzi-fake-store-api.createuser
      outputParameters:
      - type: object
        mapping: $.
    - name: getuser
      description: Get user
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platzi-fake-store-api.getuser
      outputParameters:
      - type: object
        mapping: $.
    - name: updateuser
      description: Update user
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: platzi-fake-store-api.updateuser
      outputParameters:
      - type: object
        mapping: $.
    - name: checkemailavailability
      description: Check email availability
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platzi-fake-store-api.checkemailavailability
      outputParameters:
      - type: object
        mapping: $.
    - name: login
      description: Login and obtain JWT tokens
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platzi-fake-store-api.login
      outputParameters:
      - type: object
        mapping: $.
    - name: getprofile
      description: Get authenticated user profile
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platzi-fake-store-api.getprofile
      outputParameters:
      - type: object
        mapping: $.
    - name: refreshtoken
      description: Refresh access token
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platzi-fake-store-api.refreshtoken
      outputParameters:
      - type: object
        mapping: $.
    - name: uploadfile
      description: Upload a file
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platzi-fake-store-api.uploadfile
      outputParameters:
      - type: object
        mapping: $.
    - name: getfile
      description: Retrieve uploaded file
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platzi-fake-store-api.getfile
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    PLATZI_FAKE_STORE_API_TOKEN: PLATZI_FAKE_STORE_API_TOKEN