---
title: "Create blog post"
method: POST
path: "/blog_posts"
tags: ["BlogPosts"]
---

# Create blog post

`POST /blog_posts`

## Request

- Base URL: `https://api.crevio.co/v1`
- URL: `https://api.crevio.co/v1/blog_posts`
- Auth: API key in header `Authorization`

Creates a new blog post.

## Headers

- `Idempotency-Key` string

## Request body

- BlogPostRequest
  - `title` string
  - `content` string
  - `status` 'draft' | 'published' | 'scheduled' | 'archived'
  - `slug` string
  - `excerpt` string
  - `blog_category_id` integer, nullable
  - `published_at` string, date-time, nullable
  - `scheduled_at` string, date-time, nullable
  - `seo_attributes` object
    - `id` string: SEO record ID (for updates)
    - `title` string, nullable
    - `description` string, nullable

## Response `201`

Blog post created

- BlogPost
  - `id` string, required
  - `object` string, required
  - `title` string, required
  - `slug` string, required
  - `content` string, required
  - `status` 'draft' | 'published' | 'scheduled' | 'archived', required
  - `excerpt` string, required
  - `published_at` string, date-time, nullable, required
  - `scheduled_at` string, date-time, nullable, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `url` string, required
  - `category` string, nullable, required

## Other responses

- `400`: Bad request
- `401`: Authentication required
- `403`: Forbidden
- `422`: Validation error
- `429`: Rate limit exceeded — 600 requests per minute per credential. Retry after the number of seconds in `Retry-After`.
- `500`: Internal server error

---

[API](https://skmtc.dev/crevio/apis/crevio-api-v1.md) · [All operations](https://skmtc.dev/crevio/apis/crevio-api-v1/llms.txt) · [OpenAPI document](https://skmtc.dev/crevio/apis/crevio-api-v1/revisions/2219f18ad651?raw)
