--- title: app - GraphQL Admin description: |- Retrieves an [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) by its ID. If no ID is provided, returns details about the currently authenticated app. The query provides access to app details including title, icon, and pricing information. If the app isn't installed on the current shop, then the [`installation`](https://shopify.dev/docs/api/admin-graphql/latest/queries/app#returns-App.fields.installation) field will be `null`. api_version: 2025-10 api_name: admin type: query api_type: graphql source_url: html: https://shopify.dev/docs/api/admin-graphql/latest/queries/App md: https://shopify.dev/docs/api/admin-graphql/latest/queries/App.md --- # app query Retrieves an [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) by its ID. If no ID is provided, returns details about the currently authenticated app. The query provides access to app details including title, icon, and pricing information. If the app isn't installed on the current shop, then the [`installation`](https://shopify.dev/docs/api/admin-graphql/latest/queries/app#returns-App.fields.installation) field will be `null`. ## Arguments * id [ID](https://shopify.dev/docs/api/admin-graphql/latest/scalars/ID) The ID to lookup the App by. *** ## Possible returns * App [App](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) A Shopify application that extends store functionality. Apps integrate with Shopify through APIs to add features, automate workflows, or connect external services. Provides metadata about the app including its developer information and listing details in the Shopify App Store. Use the [`installation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App#field-App.fields.installation) field to determine if the app is currently installed on the shop and access installation-specific details like granted [`AccessScope`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AccessScope) objects. Check [`failedRequirements`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App#field-App.fields.failedRequirements) before installation to identify any prerequisites that must be met. *** ## Examples * ### Get an app by its ID #### Description Retrieve an app with its ID, returning the app title #### Query ```graphql query { app(id: "gid://shopify/App/193172482") { title } } ``` #### cURL ```bash curl -X POST \ https://your-development-store.myshopify.com/admin/api/2025-10/graphql.json \ -H 'Content-Type: application/json' \ -H 'X-Shopify-Access-Token: {access_token}' \ -d '{ "query": "query { app(id: \"gid://shopify/App/193172482\") { title } }" }' ``` #### React Router ```javascript import { authenticate } from "../shopify.server"; export const loader = async ({request}) => { const { admin } = await authenticate.admin(request); const response = await admin.graphql( `#graphql query { app(id: "gid://shopify/App/193172482") { title } }`, ); const json = await response.json(); return json.data; } ``` #### Ruby ```ruby session = ShopifyAPI::Auth::Session.new( shop: "your-development-store.myshopify.com", access_token: access_token ) client = ShopifyAPI::Clients::Graphql::Admin.new( session: session ) query = <<~QUERY query { app(id: "gid://shopify/App/193172482") { title } } QUERY response = client.query(query: query) ``` #### Node.js ```javascript const client = new shopify.clients.Graphql({session}); const data = await client.query({ data: `query { app(id: "gid://shopify/App/193172482") { title } }`, }); ``` #### Response ```json { "app": { "title": "Invoicing Application" } } ``` * ### Get the currently authenticated app #### Description Retrieve the currently authenticated app, returning the app title #### Query ```graphql query { app { title } } ``` #### cURL ```bash curl -X POST \ https://your-development-store.myshopify.com/admin/api/2025-10/graphql.json \ -H 'Content-Type: application/json' \ -H 'X-Shopify-Access-Token: {access_token}' \ -d '{ "query": "query { app { title } }" }' ``` #### React Router ```javascript import { authenticate } from "../shopify.server"; export const loader = async ({request}) => { const { admin } = await authenticate.admin(request); const response = await admin.graphql( `#graphql query { app { title } }`, ); const json = await response.json(); return json.data; } ``` #### Ruby ```ruby session = ShopifyAPI::Auth::Session.new( shop: "your-development-store.myshopify.com", access_token: access_token ) client = ShopifyAPI::Clients::Graphql::Admin.new( session: session ) query = <<~QUERY query { app { title } } QUERY response = client.query(query: query) ``` #### Node.js ```javascript const client = new shopify.clients.Graphql({session}); const data = await client.query({ data: `query { app { title } }`, }); ``` #### Response ```json { "app": { "title": "Invoicing Application" } } ``` * ### Get the feedback field #### Query ```graphql query ShopFeedbackList { app(id: "gid://shopify/App/88312") { feedback { messages { message } feedbackGeneratedAt state } } } ``` #### cURL ```bash curl -X POST \ https://your-development-store.myshopify.com/admin/api/2025-10/graphql.json \ -H 'Content-Type: application/json' \ -H 'X-Shopify-Access-Token: {access_token}' \ -d '{ "query": "query ShopFeedbackList { app(id: \"gid://shopify/App/88312\") { feedback { messages { message } feedbackGeneratedAt state } } }" }' ``` #### React Router ```javascript import { authenticate } from "../shopify.server"; export const loader = async ({request}) => { const { admin } = await authenticate.admin(request); const response = await admin.graphql( `#graphql query ShopFeedbackList { app(id: "gid://shopify/App/88312") { feedback { messages { message } feedbackGeneratedAt state } } }`, ); const json = await response.json(); return json.data; } ``` #### Ruby ```ruby session = ShopifyAPI::Auth::Session.new( shop: "your-development-store.myshopify.com", access_token: access_token ) client = ShopifyAPI::Clients::Graphql::Admin.new( session: session ) query = <<~QUERY query ShopFeedbackList { app(id: "gid://shopify/App/88312") { feedback { messages { message } feedbackGeneratedAt state } } } QUERY response = client.query(query: query) ``` #### Node.js ```javascript const client = new shopify.clients.Graphql({session}); const data = await client.query({ data: `query ShopFeedbackList { app(id: "gid://shopify/App/88312") { feedback { messages { message } feedbackGeneratedAt state } } }`, }); ``` #### Response ```json { "app": { "feedback": { "messages": [ { "message": "Buy Button is not connected. Connect your account to use this sales channel." } ], "feedbackGeneratedAt": "2024-12-17T19:29:36Z", "state": "REQUIRES_ACTION" } } } ``` [Open in GraphiQL](http://localhost:3457/graphiql?query=query%20%7B%0A%20%20app\(id%3A%20%22gid%3A%2F%2Fshopify%2FApp%2F193172482%22\)%20%7B%0A%20%20%20%20title%0A%20%20%7D%0A%7D) ##### GQL ```graphql query { app(id: "gid://shopify/App/193172482") { title } } ``` ##### cURL ```bash curl -X POST \ https://your-development-store.myshopify.com/admin/api/2025-10/graphql.json \ -H 'Content-Type: application/json' \ -H 'X-Shopify-Access-Token: {access_token}' \ -d '{ "query": "query { app(id: \"gid://shopify/App/193172482\") { title } }" }' ``` ##### React Router ```javascript import { authenticate } from "../shopify.server"; export const loader = async ({request}) => { const { admin } = await authenticate.admin(request); const response = await admin.graphql( `#graphql query { app(id: "gid://shopify/App/193172482") { title } }`, ); const json = await response.json(); return json.data; } ``` ##### Node.js ```javascript const client = new shopify.clients.Graphql({session}); const data = await client.query({ data: `query { app(id: "gid://shopify/App/193172482") { title } }`, }); ``` ##### Ruby ```ruby session = ShopifyAPI::Auth::Session.new( shop: "your-development-store.myshopify.com", access_token: access_token ) client = ShopifyAPI::Clients::Graphql::Admin.new( session: session ) query = <<~QUERY query { app(id: "gid://shopify/App/193172482") { title } } QUERY response = client.query(query: query) ``` ## Response JSON ```json { "app": { "title": "Invoicing Application" } } ```