# Page - admin-graphql - OBJECT Version: unstable ## Description A page on the Online Store. ### Access Scopes `read_content` access scope or `read_online_store_pages` access scope. ## Fields * [body](/docs/api/admin-graphql/unstable/scalars/HTML): HTML! - The text content of the page, complete with HTML markup. * [bodySummary](/docs/api/admin-graphql/unstable/scalars/String): String! - The first 150 characters of the page body. If the page body contains more than 150 characters, additional characters are truncated by ellipses. * [createdAt](/docs/api/admin-graphql/unstable/scalars/DateTime): DateTime! - The date and time (ISO 8601 format) of the page creation. * [defaultCursor](/docs/api/admin-graphql/unstable/scalars/String): String! - A default [cursor](https://shopify.dev/api/usage/pagination-graphql) that returns the single next record, sorted ascending by ID. * [handle](/docs/api/admin-graphql/unstable/scalars/String): String! - A unique, human-friendly string for the page. In themes, the Liquid templating language refers to a page by its handle. * [id](/docs/api/admin-graphql/unstable/scalars/ID): ID! - A globally-unique ID. * [isPublished](/docs/api/admin-graphql/unstable/scalars/Boolean): Boolean! - Whether or not the page is visible. * [metafield](/docs/api/admin-graphql/unstable/objects/Metafield): Metafield - A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. * [metafieldsByIdentifiers](/docs/api/admin-graphql/unstable/objects/Metafield): Metafield! - The metafields associated with the resource matching the supplied list of namespaces and keys. * [privateMetafield](/docs/api/admin-graphql/unstable/objects/PrivateMetafield): PrivateMetafield - Returns a private metafield by namespace and key that belongs to the resource. * [publishedAt](/docs/api/admin-graphql/unstable/scalars/DateTime): DateTime - The date and time (ISO 8601 format) when the page became or will become visible. Returns null when the page isn't visible. * [templateSuffix](/docs/api/admin-graphql/unstable/scalars/String): String - The suffix of the template that's used to render the page. * [title](/docs/api/admin-graphql/unstable/scalars/String): String! - Title of the page. * [translations](/docs/api/admin-graphql/unstable/objects/Translation): Translation! - The published translations associated with the resource. * [updatedAt](/docs/api/admin-graphql/unstable/scalars/DateTime): DateTime! - The date and time (ISO 8601 format) of the latest page update. ## Connections * [events](/docs/api/admin-graphql/unstable/connections/EventConnection): EventConnection! * [metafieldDefinitions](/docs/api/admin-graphql/unstable/connections/MetafieldDefinitionConnection): MetafieldDefinitionConnection! * [metafields](/docs/api/admin-graphql/unstable/connections/MetafieldConnection): MetafieldConnection! * [privateMetafields](/docs/api/admin-graphql/unstable/connections/PrivateMetafieldConnection): PrivateMetafieldConnection! ## Related queries * [page](/docs/api/admin-graphql/unstable/queries/page) Returns a Page resource by ID. * [pages](/docs/api/admin-graphql/unstable/queries/pages) List of the shop's pages. ## Related mutations * [pageCreate](/docs/api/admin-graphql/unstable/mutations/pageCreate) Creates a page. * [pageUpdate](/docs/api/admin-graphql/unstable/mutations/pageUpdate) Updates a page. ## Related Unions * [MetafieldReference](/docs/api/admin-graphql/unstable/unions/MetafieldReference) The resource referenced by the metafield value. * [MetafieldReferencer](/docs/api/admin-graphql/unstable/unions/MetafieldReferencer) Types of resources that may use metafields to reference other resources. ## Examples ### Retrieves a single page by its ID Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/unstable/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"query PageShow($id: ID!) { page(id: $id) { id title handle } }\",\n \"variables\": {\n \"id\": \"gid://shopify/Page/602767277\"\n }\n}'\n" Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: {\n \"query\": `query PageShow($id: ID!) {\n page(id: $id) {\n id\n title\n handle\n }\n }`,\n \"variables\": {\n \"id\": \"gid://shopify/Page/602767277\"\n },\n },\n});\n" Ruby example: "session = ShopifyAPI::Auth::Session.new(\n shop: \"your-development-store.myshopify.com\",\n access_token: access_token\n)\nclient = ShopifyAPI::Clients::Graphql::Admin.new(\n session: session\n)\n\nquery = <<~QUERY\n query PageShow($id: ID!) {\n page(id: $id) {\n id\n title\n handle\n }\n }\nQUERY\n\nvariables = {\n \"id\": \"gid://shopify/Page/602767277\"\n}\n\nresponse = client.query(query: query, variables: variables)\n" Remix example: "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n `#graphql\n query PageShow($id: ID!) {\n page(id: $id) {\n id\n title\n handle\n }\n }`,\n {\n variables: {\n \"id\": \"gid://shopify/Page/602767277\"\n },\n },\n);\n\nconst data = await response.json();\n" Graphql query: "query PageShow($id: ID!) {\n page(id: $id) {\n id\n title\n handle\n }\n}" #### Graphql Input { "id": "gid://shopify/Page/602767277" } #### Graphql Response { "data": { "page": { "id": "gid://shopify/Page/602767277", "title": "Sample Page", "handle": "samplepage" } } }