---
title: "Get one blog post with its body"
method: GET
path: "/blog-posts/{slug}"
tags: ["Blog"]
---

# Get one blog post with its body

`GET /blog-posts/{slug}`

## Request

- Base URL: `https://grape.cool/api/v1`
- URL: `https://grape.cool/api/v1/blog-posts/{slug}`
- Auth: none required

Returns a single published post including the full markdown body and the cover image URL.

## Path parameters

- `slug` string, required

## Response `200`

The post and its markdown body.

- object
  - `success` true, required
  - `data` BlogPost, required
    - `id` string: Internal identifier.
    - `slug` string, required: Identifier for getBlogPost.
    - `title` string, required: Post title.
    - `description` string, required: Standfirst.
    - `publishedAt` string, date-time, required: When the post went out.
    - `url` string, uri
    - `coverImage` string, nullable: Cover image URL, or null when the post has none.
    - `body` string, required: The full post as markdown.
  - `meta` Meta: Counts and echoed arguments that describe the payload.
    - `total` integer: How many items exist.
    - `returned` integer: How many items this response carries.
    - `query` string: The search term that was used.
    - `currency` string: ISO 4217 code the prices are quoted in.

## Other responses

- `400`: A parameter was missing or outside the allowed values.
- `404`: Nothing matches the identifier given.
- `429`: More than 1000 requests came from this IP address in an hour.
- `500`: The request could not be completed.

---

[API](https://skmtc.dev/grape/apis/grape-public-api.md) · [All operations](https://skmtc.dev/grape/apis/grape-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/grape/apis/grape-public-api/revisions/16061cbac2d4?raw)
