--- displayed_sidebar: jsClientSidebar slug: /references/js-client/AdminCustomResource --- import ParameterTypes from "@site/src/components/ParameterTypes" # AdminCustomResource This class is used to send requests custom API Routes. All its method are available in the JS Client under the `medusa.admin.custom` property. ## Methods ### delete Send a `DELETE` request to a custom API Route. The method accepts a type parameters `TResponse` indicating the type of response, which defaults to `any`. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.custom.delete(`/blog/posts/${postId}`).then(() => { // deleted successfully }) ``` #### Parameters `", "description": "Custom headers to attach to the request.", "optional": true, "defaultValue": "", "expandable": false, "children": [] } ]} /> #### Returns ___ ### get Send a `GET` request to a custom API Route. The method accepts a tuple of type parameters: the first `TQuery` is the type of accepted query parameters, which defaults to `Record`; the second `TResponse` is the type of response, which defaults to `any`. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) type PostsResponse = { posts: Post[] } // must be previously logged in or use api token medusa.admin.custom.get, PostsResponse>( "/blog/posts" ) .then(({ posts }) => { console.log(posts.length); }) ``` #### Parameters `", "description": "Custom headers to attach to the request.", "optional": true, "defaultValue": "", "expandable": false, "children": [] } ]} /> #### Returns ___ ### post Send a `POST` request to a custom API Route. The method accepts a tuple of type parameters: the first `TPayload` is the type of accepted body parameters, which defaults to `Record`; the second `TResponse` is the type of response, which defaults to `any`. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) type PostRequest = { title: string } type PostResponse = { post: Post } // must be previously logged in or use api token medusa.admin.custom.post( "/blog/posts", { title: "My post", } ) .then(({ post }) => { console.log(post.id); }) ``` #### Parameters `", "description": "Custom headers to attach to the request.", "optional": true, "defaultValue": "", "expandable": false, "children": [] } ]} /> #### Returns