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"
  }
}

Back to top

Welcome to the Arkipel DevKit! This documentation will guide you through everything you need to build clients for Arkipel communities.

Contact: devkit@arkipel.co | Page URLs

Copyright © 2026 Arkipel. Distributed under an MIT license.