# Create processing result output version

```{raw} html
<div class="mo-api-page-show-toc" aria-hidden="true"></div>
```

Creates a revision for the specified product output block. When modifying concurrently, bring the expected revision to avoid overwriting other revisions.

```text
POST https://moi.matrixorigin.cn/newmoi/lineage/artifacts/{artifact_id}/blocks/{block_id}/revisions
```

## Preparation before calling

Prepare a personal access token and target workspace ID that has access to the target workspace.


## Request body

::::{div} mo-api-split
:::{div} mo-api-split-main

```{raw} html
<dl class="mo-api-fields">
  <div class="mo-api-field"><dt><code>base_revision_id</code><span class="mo-api-field__type">string</span></dt><dd>The revision ID to base the new revision on.</dd></div>
  <div class="mo-api-field"><dt><code>use_original</code><span class="mo-api-field__type">boolean</span></dt><dd>Use original content as base.</dd></div>
  <div class="mo-api-field"><dt><code>use_current_effective</code><span class="mo-api-field__type">boolean</span></dt><dd>Use the currently active revision as the basis.</dd></div>
  <div class="mo-api-field"><dt><code>expected_effective_set_version</code><span class="mo-api-field__type">integer</span></dt><dd>The expected effective revision set version.</dd></div>
  <div class="mo-api-field"><dt><code>revision_content_payload</code><span class="mo-api-field__type">string</span></dt><dd>New revision content.</dd></div>
  <div class="mo-api-field"><dt><code>patch_json</code><span class="mo-api-field__type">string</span></dt><dd>Revision patch JSON.</dd></div>
</dl>
```

:::
:::{div} mo-api-split-aside

```{raw} html
<p class="mo-api-example-label">Request example</p>
```

```bash
curl -X POST "https://moi.matrixorigin.cn/newmoi/lineage/artifacts/$ARTIFACT_ID/blocks/$BLOCK_ID/revisions" \
  -H "X-API-Key: $AI_STUDIO_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "use_current_effective": true,
    "expected_effective_set_version": 3,
    "revision_content_payload": "修订后的内容"
  }'
```

:::
::::

## Successful response

When the request is successful, the data of this operation is returned. Just because the write or run request has been accepted does not mean that the subsequent processing has been completed; please confirm the result based on the return status or subsequent query.


The response fields are as follows.

::::{div} mo-api-split
:::{div} mo-api-split-main

```{raw} html
<dl class="mo-api-fields">
  <div class="mo-api-field"><dt><code>data.artifact_id</code><span class="mo-api-field__type">string</span></dt><dd>Product ID.</dd></div>
  <div class="mo-api-field"><dt><code>data.block_id</code><span class="mo-api-field__type">string</span></dt><dd>Output block ID.</dd></div>
  <div class="mo-api-field"><dt><code>data.revision</code><span class="mo-api-field__type">object</span></dt><dd>The newly created revision.</dd></div>
</dl>
```

:::
:::{div} mo-api-split-aside

```{raw} html
<p class="mo-api-example-label">Successful response example</p>
```

```json
{
  "code": "OK",
  "msg": "OK",
  "data": {"artifact_id": "art-001", "block_id": "block-001", "revision": {}}
}
```

:::
::::

## Error response

::::{div} mo-api-split
:::{div} mo-api-split-main

```{raw} html
<dl class="mo-api-fields">
  <div class="mo-api-field"><dt><code>code</code><span class="mo-api-field__type">string</span></dt><dd>Error code.</dd></div>
  <div class="mo-api-field"><dt><code>msg</code><span class="mo-api-field__type">string</span></dt><dd>Readable error message.</dd></div>
  <div class="mo-api-field"><dt><code>data</code><span class="mo-api-field__type">null</span></dt><dd>`null` in an error response.</dd></div>
</dl>
```

:::
:::{div} mo-api-split-aside

```{raw} html
<p class="mo-api-example-label">Error response example</p>
```

```json
{
  "code": "ErrParamInvalid",
  "msg": "请求参数无效",
  "data": null
}
```

:::
::::
