publications:upsert
Description: Create a publication or update a single publication by ID.
Request Schema
{
"payload": {
"id": 1, // When set, update existing record, else create new record
"type": "publications:upsert",
"name": "Superb Article!",
"locale": "en",
"introduction": "The introduction as text",
"content": "<p>She said, \"Hello there!\" and smiled.</p>",
"image_url": "https://unsplash.com/photos/OEvLi8LM7cc/download?force=true&w=640"
},
"signature": "payload_ed25519_hex_signature",
"source_public_key": "your_client_public_key"
}
Request Attributes
Field Constraints
| Field | Type | Required | Default | Max Length | Constraints |
|---|---|---|---|---|---|
id | Integer | No | null | - | Arkipel ID. When set, updates existing record. When omitted, creates new record. |
import_id | String | Yes | Auto-generated | 255 | Your external system ID for this publication. Unique per account. Auto-generated if not provided. |
name | String | Yes | null | 255 | Publication title. Required. |
locale | Enum | No | null | - | Language. Values: fr, en
|
introduction | String | No | null | - | Introduction or summary text |
content | HTML | No | null | - | Main content. See HTML Content Guide for specifications |
image_url | URL | No | null | - | Public image URL. Accepted formats: png, jpg, jpeg, gif
|
video_url | URL | No | null | - | Public video URL. Accepted formats: video/mp4, video/webm, video/quicktime
|
Special Field: import_id
The import_id field is your integration’s identifier for this publication. Use it to link Arkipel records with your external system.
Characteristics:
- Required but auto-generated if not provided
- Must be unique per account
-
Your external system ID format is recommended (e.g.,
article_123,news_456,blog_789) - Used for idempotent operations and duplicate prevention
- Auto-generated format: 6 characters from
234679ACDEFGHJKMNPRTVWXYZ
HTML Content Guidelines
When using the content field, follow the HTML Content Guide for:
- Allowed HTML tags
- Security sanitization rules
- Encoding requirements
Response Schema
{
"source_public_key": "community_public_key",
"source_site": {
"protocol": "http",
"fqdn": "arkipel.localhost:3000"
},
"created_at": "2025-11-13T20:52:49Z",
"signature": "8b6392d5550605bd6ccddf9c21ebec470de4b44e4b4deb746076e37ab61c5346e07e7c7c7cebb5bbee41cdd92a476bcd3f02373d146ec165b31c31fc31c9ce0d",
"payload": {
"message_id": "6916452112f746b2b4cf48c1",
"type": "publications:upsert"
}
}