GenesisForums
Documentation navigation

Create a comment

Imports one comment into the canonical Forum discussion for a novel.

POST/api/integrations/posts

Imports a single comment. Genesis resolves the novel by title, reuses or creates its canonical discussion thread, and attributes the post to your platform until the member links their Genesis account.

Requires a Bearer API key, Content-Type: application/json, an Idempotency-Key header (use your immutable source event ID), and the Post ingestion capability. Maximum request size: 32 KB. Default rate: 60 requests per minute.

Parameters

uuidstringRequired

Stable external user ID of the comment author, at most 255 characters. Never recycle a UUID; it is the identity key.

usernamestringRequired

Author display name at the time of the comment, 1–50 characters. Later deliveries may update the display name without creating a second identity.

novelstringRequired

Canonical novel title, 1–300 characters, matched case-insensitively. See Novel resolution.

contentstringRequired

Comment body as plain text, 1–20,000 characters. Do not send HTML.

chapterNumbernumberOptional

Chapter the comment was written on, from 0 to 1,000,000. Decimals such as 12.5 are supported for interludes and side stories, and 0 for prologues. Omit for novel-level comments.

timestampstringOptional

Original publication time as ISO 8601 with an explicit timezone. No more than five minutes in the future. Defaults to receipt time.

parent_uuidstringOptional

The Idempotency-Key you used when delivering the parent comment. Makes this comment a threaded reply. If the parent is not found in the same discussion, the comment is stored top-level instead of failing; check parentPostId in the response.

Returns

Returns 201 Created when the post is inserted. A retry with the same Idempotency-Key returns 200 OK, the original identifiers, and created: false.

Both responses include postId, threadId, parentPostId (null when the post is top-level), and the public url, so your system can store a cross-reference.

Errors

novel_not_found

No published or approved novel matched the title, and the integration cannot create novels. Not retryable until the novel exists.

capability_disabled

The integration does not have Post ingestion enabled.

rate_limited

The per-minute import limit was exceeded. Retry after a pause.

invalid_idempotency_key

The Idempotency-Key header is missing or malformed.

invalid_request

A field failed validation; the message names it.

See Errors for shared statuses and retry guidance.

POST /api/integrations/posts
curl https://forum.genesistudio.com/api/integrations/posts \
  -H "Authorization: Bearer $FORUM_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: comment-987654" \
  -d '{
    "uuid": "external-user-324234",
    "username": "reader123",
    "novel": "Memorize",
    "chapterNumber": 42,
    "timestamp": "2026-07-28T09:15:00Z",
    "content": "The source comment text.",
    "parent_uuid": "comment-987000"
  }'
Response · 201 Created
{
  "created": true,
  "postId": "2c31d623-0a40-4dac-a8a6-5e939bf37ef9",
  "threadId": "79291fea-6eb9-4eca-8259-104be2f10212",
  "parentPostId": "9f8f6c1a-4a4e-4a3f-9be1-1d2ce17a8a10",
  "url": "https://forum.genesistudio.com/novels/memorize/discussion?post=2c31d623"
}