> ## Documentation Index
> Fetch the complete documentation index at: https://spreecommerce.org/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Retrieve a Post

> Returns the details of a specified Post. You can use either the post slug or ID. This endpoint is only available in Spree 5.2 or later.



## OpenAPI

````yaml /api-reference/storefront.yaml get /api/v2/storefront/posts/{id}
openapi: 3.0.3
info:
  version: 2.0.0
  title: Storefront API
  description: >-
    Storefront API is a modern REST API based on the [JSON API
    spec](https://jsonapi.org/) which provides you with all the necessary
    endpoints to build amazing user interfaces either in JavaScript frameworks
    or native mobile libraries.


    Import to
    [Postman](https://raw.githubusercontent.com/spree/spree/main/docs/api-reference/storefront.yaml)
  contact:
    name: Vendo Connect Inc.
    url: https://spreecommerce.org
    email: hello@spreecommerce.org
  license:
    name: BSD-3-Clause
    url: https://github.com/spree/spree/blob/main/LICENSE.md
servers:
  - url: https://demo.spreecommerce.org
    description: demo
  - url: http://localhost:3000
    description: localhost
security: []
tags:
  - name: Account
  - name: Account / Address
  - name: Account / Credit Cards
  - name: Account / Orders
  - name: Cart
  - name: Cart / Line Items
  - name: Cart / Coupons
  - name: Cart / Other
  - name: Checkout
  - name: Checkout / State
  - name: Checkout / Shipments
  - name: Checkout / Payments
  - name: Checkout / Store Credit
  - name: Stripe
  - name: Adyen
  - name: Countries
  - name: Digital Downloads
  - name: Order Status
  - name: Products
  - name: Variants
  - name: Stores
  - name: Policies
  - name: Taxons
  - name: Vendors
  - name: Wishlists
  - name: Wishlists / Wished Items
paths:
  /api/v2/storefront/posts/{id}:
    get:
      tags:
        - Posts
      summary: Retrieve a Post
      description: >-
        Returns the details of a specified Post. You can use either the post
        slug or ID. This endpoint is only available in Spree 5.2 or later.
      operationId: show-post
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
          example: hello-world
          description: Post slug or ID
        - in: query
          name: include
          schema:
            type: string
          example: post_category
          description: 'Include related resources (available: post_category)'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Post'
              examples:
                success:
                  value:
                    data:
                      id: '1'
                      type: post
                      attributes:
                        title: Hello World
                        slug: hello-world
                        published_at: '2025-08-11T21:03:00.000Z'
                        meta_title: ''
                        meta_description: ''
                        created_at: '2025-08-11T21:03:00.128Z'
                        updated_at: '2025-08-27T10:09:23.007Z'
                        excerpt: null
                        content: This is a test post
                        content_html: >-
                          <div class="trix-content">\n  <div>This is a test
                          post</div>\n</div>\n
                        description: This is a test post
                        shortened_description: This is a test post
                        author_name: Spree Admin
                        post_category_title: News
                        tags: []
                        image_url: null
                      relationships:
                        post_category:
                          data:
                            id: '3'
                            type: post_category
        '404':
          $ref: '#/components/responses/404NotFound'
components:
  schemas:
    Post:
      type: object
      title: Post
      description: >-
        Post represents a blog post or news article that can be displayed on the
        storefront.
      properties:
        id:
          type: string
          example: '1'
        type:
          type: string
          default: post
        attributes:
          type: object
          properties:
            title:
              type: string
              example: Hello World
              description: Title of the post
            slug:
              type: string
              example: hello-world
              description: URL-friendly identifier for the post
            published_at:
              type: string
              format: date-time
              example: '2025-08-11T21:03:00.000Z'
              description: Date and time when the post was published
              nullable: true
            meta_title:
              type: string
              example: ''
              description: SEO meta title
              nullable: true
            meta_description:
              type: string
              example: ''
              description: SEO meta description
              nullable: true
            created_at:
              $ref: '#/components/schemas/Timestamp'
            updated_at:
              $ref: '#/components/schemas/Timestamp'
            excerpt:
              type: string
              example: null
              description: Short excerpt of the post content
              nullable: true
            content:
              type: string
              example: This is a test post
              description: Plain text content of the post
              nullable: true
            content_html:
              type: string
              example: |
                <div class="trix-content">
                  <div>This is a test post</div>
                </div>
              description: HTML formatted content of the post
              nullable: true
            description:
              type: string
              example: This is a test post
              description: Description of the post
              nullable: true
            shortened_description:
              type: string
              example: This is a test post
              description: Shortened description of the post
              nullable: true
            author_name:
              type: string
              example: Spree Admin
              description: Name of the post author
              nullable: true
            post_category_title:
              type: string
              example: News
              description: Title of the associated post category
              nullable: true
            tags:
              type: array
              items:
                type: string
              example: []
              description: List of tags associated with the post
            image_url:
              type: string
              example: null
              description: URL of the post's featured image
              nullable: true
        relationships:
          type: object
          properties:
            post_category:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    id:
                      type: string
                      example: '3'
                    type:
                      type: string
                      example: post_category
          required:
            - title
            - slug
            - created_at
            - updated_at
      required:
        - id
        - type
        - attributes
    Timestamp:
      type: string
      format: date-time
      example: '2020-02-16T07:14:54.617Z'
      x-internal: false
      title: Time Stamp
      x-examples:
        example-1: '2020-02-16T07:14:54.617Z'
  responses:
    404NotFound:
      description: 404 Not Found - Resource not found.
      content:
        application/vnd.api+json:
          schema:
            properties:
              error:
                type: string
                example: The resource you were looking for could not be found.
                default: The resource you were looking for could not be found.
          examples:
            404 Example:
              value:
                error: The resource you were looking for could not be found.

````