---
title: API: publish
description: REST endpoints tagged publish — generated from the platform's OpenAPI contract (3 operations).
locale: en
version: 0.2.0
canonical: https://enterium-developer-docs.pages.dev/developers/api/publish/
---

> Documentation index: https://enterium-developer-docs.pages.dev/developers/llms.txt — every page of this portal has a Markdown twin at <route>.md; the frozen API contract is at https://enterium-developer-docs.pages.dev/developers/api/openapi.json.

:::note
Generated from the OpenAPI contract — do not edit by hand. Interactive explorer with full schemas: [https://entherium.duckdns.org:8443/reference](https://entherium.duckdns.org:8443/reference); frozen spec for this build: [openapi.json](/developers/api/openapi.json).
:::

## `POST /api/v1/publish/article`

Publish Article

[Open as a page →](./post-publish-article/)

Publish one article to its Hugo instance (real the publishing hub flow, async).

404s if the article/instance is unknown; 400 if the instance has no
the publishing hub config (so a publish that can never succeed isn't accepted).

**Auth:** `Authorization: Bearer <token>` required

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `Idempotency-Key` | header | no | `string` | Optional. |

**Request body:** `application/json` — schema `PublishArticleRequest`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `article_guid` | `integer` | yes |  |
| `instance_id` | `string` | yes |  |

_Example:_

```json
{
  "article_guid": 31567,
  "instance_id": "example-prod-hugo-vps"
}
```

**Responses:**

| Code | Meaning | Body |
| --- | --- | --- |
| `202` | Successful Response | `TaskAccepted` |
| `401` | Missing or invalid authentication credentials | `ErrorResponse` |
| `422` | Validation Error | `HTTPValidationError` |

## `POST /api/v1/publish/batch`

Publish Batch

[Open as a page →](./post-publish-batch/)

**Auth:** `Authorization: Bearer <token>` required

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `Idempotency-Key` | header | no | `string` | Optional. |

**Request body:** `application/json` — schema `PublishBatchRequest`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `article_guids` | `array of integer` | yes |  |
| `instance_id` | `string` | yes |  |

_Example:_

```json
{
  "article_guids": [
    31567,
    31568
  ],
  "instance_id": "example-prod-hugo-vps"
}
```

**Responses:**

| Code | Meaning | Body |
| --- | --- | --- |
| `202` | Successful Response | `TaskAccepted` |
| `401` | Missing or invalid authentication credentials | `ErrorResponse` |
| `422` | Validation Error | `HTTPValidationError` |

## `POST /api/v1/publish/deploy`

Deploy

[Open as a page →](./post-publish-deploy/)

**Auth:** `Authorization: Bearer <token>` required

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `Idempotency-Key` | header | no | `string` | Optional. |

**Request body:** `application/json` — schema `DeployRequest`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `full_rebuild` | `boolean` | no |  |
| `instance_id` | `string` | yes |  |

_Example:_

```json
{
  "full_rebuild": false,
  "instance_id": "example-prod-hugo-vps"
}
```

**Responses:**

| Code | Meaning | Body |
| --- | --- | --- |
| `202` | Successful Response | `TaskAccepted` |
| `401` | Missing or invalid authentication credentials | `ErrorResponse` |
| `422` | Validation Error | `HTTPValidationError` |
