---
title: Storefront API
description: Contains objects used to interact with the Storefront API.
api_version: v1
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'
api_name: shopify-app-remix
---

# 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<Response>
```

### 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)

***
