publications:query

Description: Retrieve a list of published publications.

Only published publications are returned. Use updated_at_gteq to detect changes since a given timestamp.


Request Schema

{
  "payload": {
    "type": "publications:query",
    "q": {
      "per_page": 10,
      "page": 1,
      "name_cont": "Health",
      "introduction_cont": "safety",
      "locale_eq": "en",
      "updated_at_gteq": "2026-01-01T00:00:00Z",
      "updated_at_lteq": "2026-01-31T23:59:59Z"
    }
  },
  "signature": "payload_ed25519_hex_signature",
  "source_public_key": "your_client_public_key"
}

Request Attributes

  • See global request attributes
  • See search request attributes, and:
  • payload.q.name_cont - String - Records containing a given string in name (partial match)
  • payload.q.introduction_cont - String - Records containing a given string in introduction (partial match)
  • payload.q.locale_eq - String - Exact match on locale (e.g., fr, en)
  • payload.q.updated_at_gteq - DateTime (%Y-%m-%dT%H:%M:%SZ) - Records updated on or after given timestamp
  • payload.q.updated_at_lteq - DateTime (%Y-%m-%dT%H:%M:%SZ) - Records updated on or before given timestamp

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": {
    "q": {
      "per_page": 10,
      "page": 1,
      "total": 2
    },
    "resources": [
      {
        "id": 1,
        "import_id": "pub_abc123",
        "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",
        "video_url": "https://example.com/videos/demo.mp4",
        "updated_at": "2025-11-13T20:52:49Z"
      }
    ],
    "type": "publications:query"
  }
}

Response Field Constraints

Field Type Constraints
id Integer Arkipel ID
import_id String External system identifier
name String Publication title
locale Enum Language. Values: fr, en
introduction String Introduction or summary text
content HTML Main content. Relative URLs for embedded images are resolved to absolute URLs. See HTML Content Guide
image_url URL Public image URL, if present
video_url URL Public video URL, if present
updated_at DateTime Last update timestamp. Use for change detection.

Change Detection

Use updated_at_gteq to poll for changes efficiently:

{
  "payload": {
    "type": "publications:query",
    "q": {
      "updated_at_gteq": "2026-06-07T00:00:00Z",
      "per_page": 100,
      "page": 1
    }
  }
}

Filtering

All fields listed as ransackable in the table above support the standard Ransack predicates:

Predicate Description Example
_eq Exact match "locale_eq": "en"
_cont Contains (partial match) "name_cont": "Health"
_gteq Greater than or equal "updated_at_gteq": "2026-01-01"
_lteq Less than or equal "updated_at_lteq": "2026-01-31"

Only published publications are ever returned; draft records are excluded.


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.