---
title: "Service: /comments/forurl [POST]"
source: https://dev.pageseeder.com/api/services/create-comment-url-public-POST.html
description: "Create a new comment on a URL with optional task properties. Supports author details, content formatting, group assignment, task status, priority, due dates, and attachments. Public access service."
last_updated: 2026-09-02T11:36:07+10:00
document_type: api_endpoint
operation_id: comment-POST
resource_id: comment
path_template: /comments/forurl
http_method: POST
api_category: comment
implementation_version: 6.3000
api_since: 5.1102
deprecated_since: null
obsolete_since: null
api_support: supported
cache_control: N/A
generated_at: 2026-09-02
tokens: ~1189
---

# /comments/forurl \[POST\]

## Description

Create a new [comment](../../reference/glossary/comment.md) on a URL.

The URL does not have to exist in PageSeeder or even point to a valid resource but it must be a valid URL.

This service is useful to attach comments to a common anchor that can be queried when there is no URI or when it would cause too many comments to be posted on a group.

## Parameters

| Name | Description | Required | Type | Default |
| --- | --- | --- | --- | --- |
| authorname | The name of the author | yes | string |  |
| content | The content of the comment. XHTML content is [sanitized](../../reference/glossary/xhtml_sanitization.md). | yes | string |  |
| groups | A comma-separated list of group names the comment should belong to | yes | string |  |
| title | The title of the comment | yes | string |  |
| url | The URL for the URI with optional `#fragment` | yes | url |  |
| assignedto | The `ID` of the member to assign the task to – status **MUST** be set | no | long |  |
| authoremail | The email address of the author | no | email |  |
| contenttype | The media type of the comment | no | mediatype | `text/plain ` |
| due | The task due date and time in ISO-8601 format – status **MUST** be set. e.g. `2010-10-25T18:00:00+11:00` | no | datetime |  |
| labels | A comma-separated list of label values | no | strings |  |
| notify | The notification behavior | no | notify | `normal` |
| notify-async | Whether emails should be sent asynchronously (for slow email servers) | no | boolean | `false` |
| priority | The priority for the task e.g. `High`, `Medium`, `Low` – status **MUST** be set | no | priority |  |
| properties | A pipe-separated list of value pairs (e.g. `x=1\|y=2\|`) | no | string |  |
| status | The [task status](../../reference/glossary/task_status.md) value, e.g. `Open` | no | status |  |
| type | The type of the comment | no | string |  |
| uris | Comma-separated list of attachments as URI ID with optional `!fragment` e.g. `123,23,456!content,34!title` | no | longs |  |
| urls | Comma-separated list of attachments as URL with optional `#fragment` | no | urls |  |

### `due`

The task due date and time in ISO-8601 format including timezone offset (for example `2010-10-25T18:00:00+11:00`). Supplying the date only (for example `2010-10-25`) is now **DEPRECATED**.

The status **MUST** be set for the due date to be set.

### `priority`

The priority parameter must use a value that has been defined in the group properties.

For example: `High`, `Medium`, `Low`.

The status **MUST** be set for the priority to be set. 

### `status`

The value must match a valid status as defined in [Group Properties](../../guide/configuration/properties/group_properties.md).

For example: `Open`, `Resolved`, `Closed`.

To process assignedto and priority parameters requires that `status` be specified.

## Permission

This service is public, anyone can invoke it since the URL for the URI has public access.

## Response

The XML response wraps the created comment as `<comment>` inside a `<comment-creation>` element.

```xml

<comment-creation [notification-email-delayed="true"|
                  notification-email-failed="true"|
                  moderator-email-failed="true"]
                  [notify-param-ignored="true"]
                  [public="true"]>
  <comment id="123"
           discussionid="122"
           contentrole="Comment"
           created="2012-03-08T12:34:00+10:00"
           [status="Open"]
           [due="2012-03-10T18:00:00+10:00"]
           [priority="High"]
           [moderated="true"]>
    <title>Cavern stolen!</title>
    <author email="alibaba@fortythieves.com.au">
      <fullname>Ali Baba</fullname>
    </author>
    <assignedto id="123" date="2012-03-09T..."> ... </assignedto>
    <modifiedby id="456" date="2012-03-09T..."> ... </modifiedby>
    <content id="789" type="text/plain">Sesame opened the door</content>
    <context fragment="2">
      <uri id="789"> ... </uri>
    </context>
    <attachment>
      <uri id="189"> ... </uri>
    </attachment>
    <attachment fragment="5">
      <uri  id="289"> ... </uri>
    </attachment>
  </comment>
</comment-creation>
```

## Error Handling

| Code | Cause / Description |
| --- | --- |
| 0x1002 | Invalid email address |
| 0x1301 | If the author is missing |
| 0x1302 | If the author is existing and was specified using authorname or authoremail |
| 0x1303 | Both URI and URL have been specified |
| 0x1304 | The URL is invalid |
| 0x1305 | The URL does not match a GroupURI |
| 0x1306 | The Group is invalid |
| 0x1307 | The assigned to member is invalid |
| 0x1308 | The due date is invalid |
| 0x6301 | If the group has no general discussion |
| 0x6302 | Failed to create new comment |

