--- title: Storefront API description: Contains objects used to interact with the Storefront API. api_version: v1 api_name: shopify-app-remix source_url: html: 'https://shopify.dev/docs/api/shopify-app-remix/v1/apis/storefront-api' md: 'https://shopify.dev/docs/api/shopify-app-remix/v1/apis/storefront-api.md' --- # Storefront API Contains objects used to interact with the Storefront API. This object is returned as part of different contexts, such as [`appProxy`](https://shopify.dev/docs/api/shopify-app-remix/v1/authenticate/public/app-proxy), and [`unauthenticated.storefront`](https://shopify.dev/docs/api/shopify-app-remix/v1/unauthenticated/unauthenticated-storefront). #### storefront Provides utilities that apps can use to make requests to the Storefront API. * **graphql** **GraphQLClient** **required** Method for interacting with the Shopify Storefront GraphQL API If you're getting incorrect type hints in the Shopify template, follow [these instructions](https://github.com/Shopify/shopify-app-template-remix/tree/main#incorrect-graphql-hints). ### GraphQLClient * query ```ts string ``` * options ```ts GraphQLQueryOptions ``` returns ```ts Promise ``` ### GraphQLQueryOptions * apiVersion ```ts ApiVersion ``` * headers ```ts { [key: string]: any; } ``` * tries ```ts number ``` * variables ```ts QueryVariables ``` ### QueryVariables * \[key: string] ```ts any ``` Examples ### Examples * #### ##### Description Use \`storefront.graphql\` to make query / mutation requests. ##### Example ```ts import { ActionArgs } from "@remix-run/node"; import { authenticate } from "../shopify.server"; export async function action({ request }: ActionArgs) { const { storefront } = await authenticate.storefront(request); const response = await storefront.graphql(`{blogs(first: 10) { edges { node { id } } } }`); const productData = await response.json(); return json({ data: productData.data }); } ``` *** ## Related [Authenticate requests from Shopify app proxies. - App proxy context](https://shopify.dev/docs/api/shopify-app-remix/v1/authenticate/public/app-proxy) [Interact with the Storefront API on non-Shopify requests. - Unauthenticated context](https://shopify.dev/docs/api/shopify-app-remix/v1/unauthenticated/unauthenticated-storefront) ***