www/apps/book/app/learn/fundamentals/api-routes/page.mdx
export const metadata = {
title: ${pageNumber} API Routes,
}
In this chapter, you’ll learn what API routes are and how to create them.
An API route is a REST endpoint that exposes commerce features to external applications, such as storefronts, the admin dashboard, or third-party systems.
The Medusa core application provides a set of admin and store API routes out-of-the-box. You can also create custom API routes to expose your custom functionalities.
You can create an API route in a TypeScript or JavaScript file under the src/api directory of your Medusa application. The file’s name must be route.ts or route.js.
Each file exports API route handler functions for at least one HTTP method (GET, POST, DELETE, etc…).
For example, to create a GET API route at /hello-world, create the file src/api/hello-world/route.ts with the following content:
import type {
MedusaRequest,
MedusaResponse,
} from "@medusajs/framework/http"
export const GET = (
req: MedusaRequest,
res: MedusaResponse
) => {
res.json({
message: "[GET] Hello world!",
})
}
To test the API route above, start the Medusa application:
npm run dev
Then, send a GET request to the /hello-world API route:
curl http://localhost:9000/hello-world
You should receive the following response:
{
"message": "[GET] Hello world!"
}
Follow the next chapters to learn about the different HTTP methods you can use in API routes, parameters and validation, protecting routes, and more.