> For the complete documentation index, see [llms.txt](https://help.contouron.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.contouron.com/api/openapi-reference/comments.md).

# Comments

> For the complete documentation index, see [llms.txt](https://help.contouron.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.contouron.com/api/openapi-reference/comments.md).

## Comments

Endpoints related to reading and posting comments on social posts.

### List comments

> Lists the current user's comments across their connected social accounts, ordered by creation time (most recent first). Supports cursor-based pagination and filtering by platform, account, published post, and creation time window.

```json
{"openapi":"3.0.3","info":{"title":"Contouron API","version":"2.0.0"},"tags":[{"name":"comments","description":"Endpoints related to reading and posting comments on social posts."}],"servers":[{"url":"https://backend.contouron.com","description":"Contouron API Server"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","name":"contouron-api-key","in":"header"}}},"paths":{"/v2/comments":{"get":{"summary":"List comments","tags":["comments"],"description":"Lists the current user's comments across their connected social accounts, ordered by creation time (most recent first). Supports cursor-based pagination and filtering by platform, account, published post, and creation time window.","parameters":[{"schema":{"minimum":1,"maximum":250,"default":50,"type":"integer"},"in":"query","name":"limit","required":false,"description":"Maximum number of comments to return. Defaults to 50."},{"schema":{"type":"string"},"in":"query","name":"cursor","required":false,"description":"Opaque cursor returned by a previous call. Pass it to fetch the next page."},{"schema":{"type":"array","items":{"type":"string","enum":["facebook","instagram"]}},"in":"query","name":"platform","required":false,"description":"Filter comments by platform. Pass multiple values to include any of them."},{"schema":{"type":"string"},"in":"query","name":"accountId","required":false,"description":"Filter to comments belonging to a single connected account."},{"schema":{"type":"string"},"in":"query","name":"parentCommentId","required":false,"description":"Filter to direct replies to a single comment."},{"schema":{"type":"string"},"in":"query","name":"postId","required":false,"description":"Filter to comments on a single Contouron-published post."},{"schema":{"type":"string"},"in":"query","name":"since","required":false,"description":"Only include comments created on or after this ISO 8601 timestamp. Omit to apply no lower bound."},{"schema":{"type":"string"},"in":"query","name":"until","required":false,"description":"Only include comments created on or before this ISO 8601 timestamp. Omit to apply no upper bound."}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"description":"List of comments.","type":"array","items":{"type":"object","properties":{"accountId":{"description":"ID of the social account this comment belongs to.","type":"string"},"authorId":{"description":"Platform-native id of the comment author.","type":"string","nullable":true},"createdAt":{"type":"string"},"errorCode":{"description":"Set only when status is `failed`.","type":"integer","nullable":true},"errorMessage":{"description":"Set only when status is `failed`.","type":"string","nullable":true},"id":{"type":"string"},"isAuthor":{"description":"`true` if the user's own connected account authored this comment.","type":"boolean"},"parentCommentId":{"description":"Contouron id of the parent comment when this comment is a reply. null for top-level comments.","type":"string","nullable":true},"platform":{"type":"string","enum":["facebook","instagram"]},"platformCommentId":{"description":"Platform-native id of the comment.","type":"string","nullable":true},"platformPostId":{"description":"Platform-native id of the parent post being commented on.","type":"string"},"postId":{"description":"Contouron ID of the post (if published through Contouron).","type":"string","nullable":true},"status":{"type":"string","enum":["deleted","failed","posted","processing","queued"]},"text":{"type":"string"}},"required":["accountId","authorId","createdAt","errorCode","errorMessage","id","isAuthor","parentCommentId","platform","platformCommentId","platformPostId","postId","status","text"]}},"cursor":{"description":"Cursor for the next page. Absent when there are no more comments.","type":"string"}},"required":["items"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"description":"Not found","type":"object","properties":{"code":{"type":"number"},"reqId":{"description":"Request ID for tracking","type":"string"},"message":{"description":"Resource not found","type":"string"}},"required":["message"]}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"description":"Validation error","type":"object","properties":{"code":{"type":"number"},"reqId":{"description":"Request ID for tracking","type":"string"},"message":{"description":"Validation error","type":"string"}},"required":["message"]}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"description":"Server error","type":"object","properties":{"code":{"type":"number"},"reqId":{"description":"Request ID for tracking","type":"string"},"message":{"description":"An error occurred","type":"string"}},"required":["message"]}}}}}}}}}
```

### Post a comment

> Posts a comment on a published post, or a reply to an existing comment on that post when \`parentCommentId\` is provided.

```json
{"openapi":"3.0.3","info":{"title":"Contouron API","version":"2.0.0"},"tags":[{"name":"comments","description":"Endpoints related to reading and posting comments on social posts."}],"servers":[{"url":"https://backend.contouron.com","description":"Contouron API Server"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","name":"contouron-api-key","in":"header"}}},"paths":{"/v2/comments":{"post":{"summary":"Post a comment","tags":["comments"],"description":"Posts a comment on a published post, or a reply to an existing comment on that post when `parentCommentId` is provided.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"postId":{"description":"Contouron id of the published post to comment on.","type":"string"},"text":{"minLength":1,"maxLength":10000,"description":"Plain-text comment body.","type":"string"},"parentCommentId":{"description":"Contouron id of an existing top-level, posted comment on the same post to reply to. Replies to replies are not supported.","type":"string"}},"required":["postId","text"]}}},"required":true},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"accountId":{"description":"ID of the social account this comment belongs to.","type":"string"},"authorId":{"description":"Platform-native id of the comment author.","type":"string","nullable":true},"createdAt":{"type":"string"},"errorCode":{"description":"Set only when status is `failed`.","type":"integer","nullable":true},"errorMessage":{"description":"Set only when status is `failed`.","type":"string","nullable":true},"id":{"type":"string"},"isAuthor":{"description":"`true` if the user's own connected account authored this comment.","type":"boolean"},"parentCommentId":{"description":"Contouron id of the parent comment when this comment is a reply. null for top-level comments.","type":"string","nullable":true},"platform":{"type":"string","enum":["facebook","instagram"]},"platformCommentId":{"description":"Platform-native id of the comment.","type":"string","nullable":true},"platformPostId":{"description":"Platform-native id of the parent post being commented on.","type":"string"},"postId":{"description":"Contouron ID of the post (if published through Contouron).","type":"string","nullable":true},"status":{"type":"string","enum":["deleted","failed","posted","processing","queued"]},"text":{"type":"string"}},"required":["accountId","authorId","createdAt","errorCode","errorMessage","id","isAuthor","parentCommentId","platform","platformCommentId","platformPostId","postId","status","text"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"description":"Not found","type":"object","properties":{"code":{"type":"number"},"reqId":{"description":"Request ID for tracking","type":"string"},"message":{"description":"Resource not found","type":"string"}},"required":["message"]}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"description":"Validation error","type":"object","properties":{"code":{"type":"number"},"reqId":{"description":"Request ID for tracking","type":"string"},"message":{"description":"Validation error","type":"string"}},"required":["message"]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"description":"Rate limit exceeded","type":"object","properties":{"code":{"type":"number"},"reqId":{"description":"Request ID for tracking","type":"string"},"message":{"description":"Rate limit exceeded","type":"string"}},"required":["message"]}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"description":"Server error","type":"object","properties":{"code":{"type":"number"},"reqId":{"description":"Request ID for tracking","type":"string"},"message":{"description":"An error occurred","type":"string"}},"required":["message"]}}}}}}}}}
```

### Get a comment

> Fetches a single comment by its Contouron ID. The comment may be an inbound reply left by the user's audience on one of their posts, or an outbound comment the user posted through Contouron.

```json
{"openapi":"3.0.3","info":{"title":"Contouron API","version":"2.0.0"},"tags":[{"name":"comments","description":"Endpoints related to reading and posting comments on social posts."}],"servers":[{"url":"https://backend.contouron.com","description":"Contouron API Server"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","name":"contouron-api-key","in":"header"}}},"paths":{"/v2/comments/{commentId}":{"get":{"summary":"Get a comment","tags":["comments"],"description":"Fetches a single comment by its Contouron ID. The comment may be an inbound reply left by the user's audience on one of their posts, or an outbound comment the user posted through Contouron.","parameters":[{"schema":{"type":"string"},"in":"path","name":"commentId","required":true,"description":"Contouron id of the comment to fetch."}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"accountId":{"description":"ID of the social account this comment belongs to.","type":"string"},"authorId":{"description":"Platform-native id of the comment author.","type":"string","nullable":true},"createdAt":{"type":"string"},"errorCode":{"description":"Set only when status is `failed`.","type":"integer","nullable":true},"errorMessage":{"description":"Set only when status is `failed`.","type":"string","nullable":true},"id":{"type":"string"},"isAuthor":{"description":"`true` if the user's own connected account authored this comment.","type":"boolean"},"parentCommentId":{"description":"Contouron id of the parent comment when this comment is a reply. null for top-level comments.","type":"string","nullable":true},"platform":{"type":"string","enum":["facebook","instagram"]},"platformCommentId":{"description":"Platform-native id of the comment.","type":"string","nullable":true},"platformPostId":{"description":"Platform-native id of the parent post being commented on.","type":"string"},"postId":{"description":"Contouron ID of the post (if published through Contouron).","type":"string","nullable":true},"status":{"type":"string","enum":["deleted","failed","posted","processing","queued"]},"text":{"type":"string"}},"required":["accountId","authorId","createdAt","errorCode","errorMessage","id","isAuthor","parentCommentId","platform","platformCommentId","platformPostId","postId","status","text"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"description":"Not found","type":"object","properties":{"code":{"type":"number"},"reqId":{"description":"Request ID for tracking","type":"string"},"message":{"description":"Resource not found","type":"string"}},"required":["message"]}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"description":"Server error","type":"object","properties":{"code":{"type":"number"},"reqId":{"description":"Request ID for tracking","type":"string"},"message":{"description":"An error occurred","type":"string"}},"required":["message"]}}}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.contouron.com/api/openapi-reference/comments.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
