---
title: "Render Blog Article"
method: POST
path: "/internal/blog/render"
tags: ["Blog internal"]
---

# Render Blog Article

`POST /internal/blog/render`

## Request

- Base URL: `https://api.emile.wine` (the document declares no server; this is the origin it was published from)
- URL: `https://api.emile.wine/internal/blog/render`
- Auth: none declared

Returns {html, file_path, blog_url, slug}.

## Headers

- `x-internal-secret` string

## Request body

- RenderRequest: Inputs to /internal/blog/render. n8n maps Notion properties + the GDoc markdown body straight onto this schema.
  - `markdown` string, required: The article markdown body, exactly as written into the GDoc.
  - `language` string, required
  - `slug` string, required: kebab-case slug for the URL/file path.
  - `pillar` string, required: One of: vins, viticulture, cave, sommellerie, accord, appellations.
  - `target_keyword` string, required: The SEO keyword the article targets.
  - `date_iso` string, required: YYYY-MM-DD publication date.
  - `description` string, required: Meta description (~155 chars ideal).
  - `equivalent_url` string, nullable: Full URL of the article in the other language, for hreflang cross-linking.
  - `equivalent_lang` string, nullable

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

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