import { CodeTabs, CodeTab } from "docs-ui" export const metadata = { title: `Examples of the Region Module`, } # {metadata.title} In this guide, you’ll find common examples of how you can use the Region Module in your application. ## Create a Region ```ts import { MedusaRequest, MedusaResponse } from "@medusajs/medusa" import { IRegionModuleService } from "@medusajs/types" import { ModuleRegistrationName } from "@medusajs/utils" export async function POST( req: MedusaRequest, res: MedusaResponse ): Promise { const regionModuleService: IRegionModuleService = req.scope.resolve( ModuleRegistrationName.REGION ) const region = await regionModuleService.createRegions({ name: "Europe", currency_code: "eur", }) res.json({ region, }) } ``` ```ts import { NextResponse } from "next/server" import { initialize as initializeRegionModule } from "@medusajs/region" export async function POST(request: Request) { const regionModuleService = await initializeRegionModule() const region = await regionModuleService.createRegions({ name: "Europe", currency_code: "eur", }) res.json({ region, }) } ``` --- ## List Regions ```ts import { MedusaRequest, MedusaResponse } from "@medusajs/medusa" import { IRegionModuleService } from "@medusajs/types" import { ModuleRegistrationName } from "@medusajs/utils" export async function GET( req: MedusaRequest, res: MedusaResponse ): Promise { const regionModuleService: IRegionModuleService = req.scope.resolve( ModuleRegistrationName.REGION ) res.json({ regions: await regionModuleService.listRegions(), }) } ``` ```ts import { NextResponse } from "next/server" import { initialize as initializeRegionModule } from "@medusajs/region" export async function GET(request: Request) { const regionModuleService = await initializeRegionModule() return NextResponse.json({ regions: await regionModuleService.listRegions(), }) } ``` --- ## Retrieve a Region by its ID ```ts import { MedusaRequest, MedusaResponse } from "@medusajs/medusa" import { IRegionModuleService } from "@medusajs/types" import { ModuleRegistrationName } from "@medusajs/utils" export async function GET( req: MedusaRequest, res: MedusaResponse ): Promise { const regionModuleService: IRegionModuleService = req.scope.resolve( ModuleRegistrationName.REGION ) const region = await regionModuleService.retrieveRegion("reg_123") res.json({ region }) } ``` ```ts import { NextResponse } from "next/server" import { initialize as initializeRegionModule } from "@medusajs/region" export async function GET(request: Request) { const regionModuleService = await initializeRegionModule() const region = await regionModuleService.retrieveRegion("reg_123") return NextResponse.json({ region }) } ``` --- ## Update a Region ```ts import { MedusaRequest, MedusaResponse } from "@medusajs/medusa" import { IRegionModuleService } from "@medusajs/types" import { ModuleRegistrationName } from "@medusajs/utils" export async function POST( req: MedusaRequest, res: MedusaResponse ): Promise { const regionModuleService: IRegionModuleService = req.scope.resolve( ModuleRegistrationName.REGION ) const region = await regionModuleService.updateRegions("reg_123", { automatic_taxes: false, }) res.json({ region }) } ``` ```ts import { NextResponse } from "next/server" import { initialize as initializeRegionModule } from "@medusajs/region" export async function POST(request: Request) { const regionModuleService = await initializeRegionModule() const region = await regionModuleService.updateRegions("reg_123", { automatic_taxes: false, }) return NextResponse.json({ region }) } ``` --- ## Delete a Region ```ts import { MedusaRequest, MedusaResponse } from "@medusajs/medusa" import { IRegionModuleService } from "@medusajs/types" import { ModuleRegistrationName } from "@medusajs/utils" export async function DELETE( req: MedusaRequest, res: MedusaResponse ): Promise { const regionModuleService: IRegionModuleService = req.scope.resolve( ModuleRegistrationName.REGION ) await regionModuleService.deleteRegions("reg_123") res.status(200) } ``` ```ts import { NextResponse } from "next/server" import { initialize as initializeRegionModule } from "@medusajs/region" export async function DELETE(request: Request) { const regionModuleService = await initializeRegionModule() await regionModuleService.deleteRegions("reg_123") } ``` --- ## More Examples The [Region Module's main service reference](/references/region) provides a reference to all the methods available for use with examples for each.