--- title: app - GraphQL Admin description: Lookup an App by ID or return the currently authenticated App. 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 Lookup an App by ID or return the currently authenticated App. ## 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. *** ## 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) ```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; } ``` ## Response JSON ```json { "app": { "title": "Invoicing Application" } } ```