---
title: "Create a Node Request Action"
method: POST
path: "/actions/requests/nodes/"
tags: ["Actions"]
---

# Create a Node Request Action

`POST /actions/requests/nodes/`

Create a new action on an existing Node Request.
Node Request Actions represent user-driven or automated steps in a moderation workflow for requests related to project nodes (e.g., access, registration withdrawal). They capture state transitions and optional comments.
#### Available Triggers
Supported `trigger` values:
 - `submit`: Submit the request for review. (No special permissions required)
 - `accept`: Approve the request. (Requires admin permissions on the node)
 - `reject`: Deny the request. (Requires admin permissions)
 - `edit_comment`: Add or update a moderator/admin comment without state change. (Requires admin permissions)

#### Permissions

 - Accept/reject/edit_comment: Requires admin permissions on the associated node.
 - Submit: Allowed by any user with write permissions on the node.

#### Returns
On success, returns `201 Created` with the newly created action resource in the `data` key.
#### Errors

 - `400 Bad Request`: Malformed or incomplete payload.
 - `403 Forbidden`: Insufficient privileges to perform the trigger.
 - `409 Conflict`: Trigger is invalid in the current state.

See [Errors and Error Codes](#tag/Errors-and-Error-Codes) for full reference.

## Request body

- object
  - `data` object, required
    - `type` 'node-request-actions', required
    - `attributes` object, required
      - `trigger` 'submit' | 'accept' | 'reject' | 'edit_comment', required
      - `comment` string
    - `relationships` object, required
      - `target` object, required
        - `data` object, required
          - `type` 'node-requests', required
          - `id` string, required

## Response `201`

Node Request Action successfully created.

- object
  - `id` string, required — A unique identifier representing the action.
  - `type` 'review-actions' | 'node-request-actions' | 'preprint-request-actions' | 'registration-actions' | 'schema-response-actions' | 'collection-submission-actions', required — Specifies the resource type of the action, indicating the workflow it belongs to.
  - `attributes` object, required
    - `trigger` string, required — The event that initiated this action, representing workflow triggers such as: - `submit`: Submitting for review - `accept`: Accepting the submission - `reject`: Rejecting the submission - `withdraw`: Withdrawing the submission - `edit_comment`: Editing an existing comment
    - `comment` string — Optional explanatory comment provided by the user who triggered the action, offering context or justification.
    - `from_state` string, required — The state of the resource immediately before the action occurred, e.g., `pending`, `initial`, `accepted`, `rejected`.
    - `to_state` string, required — The state of the resource immediately after the action occurred, e.g., `accepted`, `rejected`, `withdrawn`.
    - `date_created` string, date-time, required — Timestamp when the action was first created.
    - `date_modified` string, date-time, required — Timestamp when the action was last modified.
    - `auto` boolean — Indicates whether the action was system-generated (`true`) or manually performed by a user (`false`).
    - `visible` boolean — Controls the visibility of the action. Visible (`true`) actions are accessible to general users, while non-visible (`false`) actions are restricted to administrators or moderators.
  - `relationships` object, required
    - `creator` object, required — Information about the user who initiated the action.
      - `links` object
        - `related` object
          - `href` string, uri
          - `meta` object
      - `data` object
        - `id` string
        - `type` string
    - `target` object, required — The resource (e.g., preprint, registration, schema response) directly affected by this action.
      - `links` object
        - `related` object
          - `href` string, uri
          - `meta` object
      - `data` object
        - `id` string
        - `type` string
    - `provider` object, required — The provider managing the moderation or review process associated with the action's target resource.
      - `links` object
        - `related` object
          - `href` string, uri
          - `meta` object
      - `data` object
        - `id` string
        - `type` string
  - `links` object
    - `self` string, uri — Direct URL to access detailed information about this action.

## Other responses

- `400` — Invalid or incomplete request payload.
- `403` — Forbidden. Insufficient permissions for requested trigger.
- `409` — Conflict. Invalid trigger for the node request's current state.

---

[API](https://skmtc.net/osf/apis/osf-apiv2-documentation.md) · [All operations](https://skmtc.net/osf/apis/osf-apiv2-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/osf/osf-apiv2-documentation/revisions/ca701048eb0d/schema)
