Create a comment
Imports one comment into the canonical Forum discussion for a novel.
/api/integrations/postsImports 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
uuidstringRequiredStable external user ID of the comment author, at most 255 characters. Never recycle a UUID; it is the identity key.
usernamestringRequiredAuthor display name at the time of the comment, 1–50 characters. Later deliveries may update the display name without creating a second identity.
novelstringRequiredCanonical novel title, 1–300 characters, matched case-insensitively. See Novel resolution.
contentstringRequiredComment body as plain text, 1–20,000 characters. Do not send HTML.
chapterNumbernumberOptionalChapter 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.
timestampstringOptionalOriginal publication time as ISO 8601 with an explicit timezone. No more than five minutes in the future. Defaults to receipt time.
parent_uuidstringOptionalThe 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_foundNo published or approved novel matched the title, and the integration cannot create novels. Not retryable until the novel exists.
capability_disabledThe integration does not have Post ingestion enabled.
rate_limitedThe per-minute import limit was exceeded. Retry after a pause.
invalid_idempotency_keyThe Idempotency-Key header is missing or malformed.
invalid_requestA field failed validation; the message names it.
See Errors for shared statuses and retry guidance.
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"
}'{
"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"
}