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

# Get Public Blog Post

> Get a published blog post by its public slug

Retrieves a single published blog post by its public slug. Returns the blog post markdown content and metadata. This endpoint does not require authentication.

## Path Parameters

<ParamField path="public_slug" type="string" required>
  The unique public slug of the blog post.
</ParamField>

## Request

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://app.shipstar.ai/api/v1/blog/weekly-update-march-31-2025"
  ```

  ```javascript JavaScript theme={null}
  const slug = 'weekly-update-march-31-2025';
  const response = await fetch(`https://app.shipstar.ai/api/v1/blog/${slug}`);
  const post = await response.json();
  ```

  ```python Python theme={null}
  import requests

  slug = 'weekly-update-march-31-2025'
  response = requests.get(f'https://app.shipstar.ai/api/v1/blog/{slug}')
  post = response.json()
  ```
</CodeGroup>

## Response

Returns the blog post object with its full markdown content.

### Example Response

```json 200 theme={null}
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "slug": "weekly-update-march-31-2025",
  "content": "# What We Shipped This Week\n\nThis week we focused on improving the dashboard experience...",
  "period_start": "2025-03-24T00:00:00Z",
  "period_end": "2025-03-31T23:59:59Z",
  "published_at": "2025-03-31T12:00:00Z",
  "created_at": "2025-03-31T10:00:00Z"
}
```

## Errors

| Status | Description                          |
| ------ | ------------------------------------ |
| 404    | Blog post not found or not published |
| 422    | Invalid slug format                  |
