BizKitHub
DocsAPI ReferencePost/api/v1/post/comment/create
postPostPublic API v1

/api/v1/post/comment/create

Create a new post comment. Always resolves contact via identityId and stores GEO IP. Runs spam detection before insert; spam comments are NOT stored.

postpostApiV1PostCommentCreate

Parameters

1 query · JSON body

Query parameters

· 1
apiKeystringRequired

Your BizKitHub API key (passed as GET parameter).

Key format: A 32-character string matching: ^(PROD|DEV_|ROOT)[A-Za-z0-9]{28}$
Prefixes: PROD (production key), DEV_ (individual developer), ROOT (system key with no limits). Learn more

ExamplePRODPGrFxpGEtrOZfuWhnoJohUYBXuOE

Request body

application/json
postIdstringRequired

Post public id (content__post.external_id).

Example6IU2SWgP76FO2UXw
identityIdstringRequired

Logged user identity (from your frontend cookies). Learn more

ExampleZ9CPkS2o3UV163VQn5OUv0T8BQi8Fvdg
contentstringRequired

Plain text comment content.

Length: 1–5000
ExampleSuper článek, díky!
parentIdstringOptional

Comment external ID (content__post_comment.external_id), 16-char string.

ExampleAbc1dEf2gHiJ3kL4
customerRealIpstringOptional

Accepted formats:

  • IPv4 dot-decimal, e.g. 1.1.1.1 (4 octets, 0–255, no leading zeros).
  • IPv6 as defined by RFC 4291 — full 2001:0db8:0000:0000:0000:0000:0000:0001, zero-compressed 2001:db8::1, IPv4-mapped ::ffff:1.2.3.4, or scoped literals. Both upper- and lower-case hex are accepted.

Server-side canonicalization (ipNormalize in core/src/lib/network/ipNormalize.ts):

  • Valid IPv4 is passed through verbatim.
  • Valid IPv6 is lowercased (RFC 5952 §4.3).
  • IPv4-mapped IPv6 ::ffff:X.X.X.X is unwrapped to plain IPv4 (RFC 4291 §2.5.5.2) so 1.2.3.4 and ::ffff:1.2.3.4 share one brj__geo_ip row.
  • Loopback aliases (::1, 0.0.0.0, localhost, empty string) collapse to 127.0.0.1.
  • Junk values that fail both IPv4 and IPv6 validation are silently rejected and replaced with 127.0.0.1 (loopback).

On the wire: every response returns the canonicalized form — clients can safely rely on lowercase IPv6 and the plain-IPv4 unwrap when de-duping or joining. Server-originated writers (activity log, session log, ban list) resolve the visitor IP via resolveClientIp / resolveClientIpOrNull — always native IPv6 on Vercel Edge (there is no auto-mapping to ::ffff:X.X.X.X).

Enrichment: the system resolves reverse DNS, geolocation, ASN, mobile/proxy/hosting/Tor flags via our VikiTron GEO/IP resolver for both address families. Learn more

Examples1.1.1.12001:4860:4860::8888

Response schema

1 status code documented

200Success
object | object | object
One of 3:
Variant 1
success"true"Required
commentobjectRequired
idstringRequired

Comment external ID (content__post_comment.external_id), 16-char string.

ExampleAbc1dEf2gHiJ3kL4
parentIdstring | nullRequired
One of 2:
Variant 1
string

Comment external ID (content__post_comment.external_id), 16-char string.

ExampleAbc1dEf2gHiJ3kL4
Variant 2
null
contentstringRequired
insertedDateDate | string | string | numberRequired
One of 4:
Variant 1
Date
Variant 2
stringdate-time
Variant 3
stringdate
Variant 4
number
deletedDateDate | string | string | number | nullRequired
One of 2:
Variant 1
Date | string | string | number
One of 4:
Variant 1
Date
Variant 2
stringdate-time
Variant 3
stringdate
Variant 4
number
Variant 2
null
authorobjectRequired
namestringRequired
profileSlugstringRequired
usingSubscriptionServicebooleanOptional

True if the author is using a subscription service (has active subscription).

isMinebooleanOptional

True if identityId belongs to the comment author.

Variant 2
success"false"Required
isSpam"true"Required
reasonstring | nullRequired
One of 2:
Variant 1
string
Variant 2
null
Variant 3
state"error"Required
messagestringRequired
code"200"Required
hintstring | nullRequired
One of 2:
Variant 1
string
Variant 2
null

Response example

application/json
{
  "success": true,
  "comment": {
    "id": "Abc1dEf2gHiJ3kL4",
    "content": "example_content",
    "author": {
      "name": "example_name",
      "profileSlug": "example_profileSlug"
    },
    "usingSubscriptionService": false,
    "isMine": false
  }
}

Request example

POST /api/v1/post/comment/create

post
curl -X POST "https://api.bizkithub.com/api/v1/post/comment/create?apiKey=PRODPGrFxpGEtrOZfuWhnoJohUYBXuOE" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
  "postId": "6IU2SWgP76FO2UXw",
  "identityId": "Z9CPkS2o3UV163VQn5OUv0T8BQi8Fvdg",
  "content": "Super článek, díky!",
  "parentId": "Abc1dEf2gHiJ3kL4",
  "customerRealIp": "1.1.1.1"
}'

Need an API key?

All BizKitHub public API endpoints require authentication via API key.

Get API Key