# Article commands

Signatures, flags and examples for recala article.

## Use these commands

Read, edit, review, approve, schedule and unpublish articles.

Examples assume you have signed in and selected the intended organization. Set shell variables such as `ARTICLE_ID` to ids from the corresponding list command. Set `PUBLICATION_TIME` to a future local time in YYYY-MM-DDTHH:MM format.

Badges describe the command’s strongest effect; a preview or read-only option may do less. [Guarded writes can require confirmation even without --yes](https://recala.co/developers/agents/#guarded). “Needs a person” covers identity, consent and credentials.

### [`recala article approve`](https://recala.co/developers/cli/article/#cmd-article-approve)

Approve the article: the named person signs it (a key needs publish; its owner is on record).

writes Acts on an organization [Supports --yes](https://recala.co/developers/agents/#guarded)

```
recala article approve ARTICLE_ID [OPTIONS]
```

Replace uppercase arguments with your own values. Replace [OPTIONS] with the flags you need, or omit it.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--org` | No | Organization name, slug or id (else RECALA_ORG, else recala org use). |
| `--yes` | No | Only with an API key holding publish: approve, schedule or unpublish without a prompt. |

#### Examples

Approve it in the named author's name; who ran the command is recorded. This is the signature, so confirm it in your terminal.

```
recala article approve "$ARTICLE_ID"
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`10` CONFIRMATION_REQUIRED](https://recala.co/developers/reference/#exit-10), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala article comments`](https://recala.co/developers/cli/article/#cmd-article-comments)

Comments left through the review link.

read Acts on an organization

```
recala article comments ARTICLE_ID [OPTIONS]
```

Replace uppercase arguments with your own values. Replace [OPTIONS] with the flags you need, or omit it.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--org` | No | Organization name, slug or id (else RECALA_ORG, else recala org use). |

#### Examples

Set the named shell variables to your own values before running.

```
recala article comments "$ARTICLE_ID"
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala article create`](https://recala.co/developers/cli/article/#cmd-article-create)

Write a new article from a topic. Uses one article of the plan; always previews the cost first.

writes Acts on an organization [Supports --yes](https://recala.co/developers/agents/#guarded)

```
recala article create [OPTIONS]
```

Replace [OPTIONS] with your flags. Include every flag marked Required in the table below.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--org` | No | Organization name, slug or id (else RECALA_ORG, else recala org use). |
| `--yes` | No | Only with an API key holding publish: approve, schedule or unpublish without a prompt. |
| `--topic` | Yes | The topic id (recala topics list) to write. |
| `--dry-run` | No | Show the cost preview and the balance; spend nothing. |
| `--no-wait` | No | Start the run and return its id immediately. |

#### Examples

Preview the cost and the balance. Nothing is spent.

```
recala article create --topic "$TOPIC_ID" --dry-run
```

Write the article. It uses one article of the plan, so confirm it in your terminal.

```
recala article create --topic "$TOPIC_ID"
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`10` CONFIRMATION_REQUIRED](https://recala.co/developers/reference/#exit-10), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala article edit`](https://recala.co/developers/cli/article/#cmd-article-edit)

Edit the text (--body-file), ask for an AI edit (--ai "notes"), or keep an AI draft (--apply).

writes Acts on an organization

```
recala article edit ARTICLE_ID [OPTIONS]
```

Replace uppercase arguments with your own values. Replace [OPTIONS] with the flags you need, or omit it.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--org` | No | Organization name, slug or id (else RECALA_ORG, else recala org use). |
| `--body-file` | No | Replace the text with this Markdown file. |
| `--ai` | No | An AI edit: one note per --ai (a paid model call; 3 per article). |
| `--wait` | No | With --ai: wait until the AI draft is ready. |
| `--timeout` | No | No description supplied by the CLI. |
| `--apply` | No | Keep the finished AI draft's changes (all but --undo). |
| `--undo` | No | With --apply: comma-separated change numbers to undo, e.g. 2,5. |

#### Examples

Run in your terminal with the intended organization selected.

```
recala article edit "$ARTICLE_ID" --ai "Shorter introduction" --wait
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`10` CONFIRMATION_REQUIRED](https://recala.co/developers/reference/#exit-10), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala article list`](https://recala.co/developers/cli/article/#cmd-article-list)

The company's articles, newest first.

read Acts on an organization

```
recala article list [OPTIONS]
```

Replace [OPTIONS] with the flags you need, or omit it.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--org` | No | Organization name, slug or id (else RECALA_ORG, else recala org use). |
| `--limit` | No | No description supplied by the CLI. |
| `--offset` | No | No description supplied by the CLI. |

#### Examples

Or name the organization for one command with --org.

```
recala article list --org rebeam
```

Or set RECALA_ORG for a shell, a script or an agent.

```
RECALA_ORG=rebeam recala article list
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala article person`](https://recala.co/developers/cli/article/#cmd-article-person)

Link the article to the named person who will sign it.

writes Acts on an organization

```
recala article person ARTICLE_ID [OPTIONS]
```

Replace uppercase arguments with your own values. Replace [OPTIONS] with your flags. Include every flag marked Required in the table below.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--org` | No | Organization name, slug or id (else RECALA_ORG, else recala org use). |
| `--person` | Yes | The author (recala authors list) who signs this article. |

#### Examples

Link the article to the real person who will sign it.

```
recala article person "$ARTICLE_ID" --person "$AUTHOR_ID"
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`10` CONFIRMATION_REQUIRED](https://recala.co/developers/reference/#exit-10), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala article recheck`](https://recala.co/developers/cli/article/#cmd-article-recheck)

Check an edited article again and show what still blocks approval.

writes Acts on an organization

```
recala article recheck ARTICLE_ID [OPTIONS]
```

Replace uppercase arguments with your own values. Replace [OPTIONS] with the flags you need, or omit it.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--org` | No | Organization name, slug or id (else RECALA_ORG, else recala org use). |

#### Examples

Set the named shell variables to your own values before running.

```
recala article recheck "$ARTICLE_ID"
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`10` CONFIRMATION_REQUIRED](https://recala.co/developers/reference/#exit-10), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala article regenerate`](https://recala.co/developers/cli/article/#cmd-article-regenerate)

Preview a held article's re-run cost, confirm, and wait for review or another hold.

writes Acts on an organization [Supports --yes](https://recala.co/developers/agents/#guarded)

```
recala article regenerate ARTICLE_ID [OPTIONS]
```

Replace uppercase arguments with your own values. Replace [OPTIONS] with the flags you need, or omit it.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--org` | No | Organization name, slug or id (else RECALA_ORG, else recala org use). |
| `--yes` | No | Only with an API key holding publish: approve, schedule or unpublish without a prompt. |

#### Examples

Set the named shell variables to your own values before running.

```
recala article regenerate "$ARTICLE_ID"
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`10` CONFIRMATION_REQUIRED](https://recala.co/developers/reference/#exit-10), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala article request-changes`](https://recala.co/developers/cli/article/#cmd-article-request-changes)

Send the article back with a change request.

writes Acts on an organization

```
recala article request-changes ARTICLE_ID [OPTIONS]
```

Replace uppercase arguments with your own values. Replace [OPTIONS] with your flags. Include every flag marked Required in the table below.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--org` | No | Organization name, slug or id (else RECALA_ORG, else recala org use). |
| `--note` | Yes | What should change. |

#### Examples

Set the named shell variables to your own values before running.

```
recala article request-changes "$ARTICLE_ID" --note "$NOTE"
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`10` CONFIRMATION_REQUIRED](https://recala.co/developers/reference/#exit-10), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala article run`](https://recala.co/developers/cli/article/#cmd-article-run)

Wait for an existing creation run; never starts or pays for another run.

read Acts on an organization

```
recala article run QUEUE_ID [OPTIONS]
```

Replace uppercase arguments with your own values. Replace [OPTIONS] with the flags you need, or omit it.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--org` | No | Organization name, slug or id (else RECALA_ORG, else recala org use). |

#### Examples

Set the named shell variables to your own values before running.

```
recala article run "$QUEUE_ID"
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala article schedule`](https://recala.co/developers/cli/article/#cmd-article-schedule)

Schedule an approved article to publish at a time.

writes Acts on an organization [Supports --yes](https://recala.co/developers/agents/#guarded)

```
recala article schedule ARTICLE_ID [OPTIONS]
```

Replace uppercase arguments with your own values. Replace [OPTIONS] with your flags. Include every flag marked Required in the table below.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--org` | No | Organization name, slug or id (else RECALA_ORG, else recala org use). |
| `--yes` | No | Only with an API key holding publish: approve, schedule or unpublish without a prompt. |
| `--at` | Yes | Local time in the company's timezone, e.g. 2026-10-06T09:00. |
| `--tz` | No | Timezone (default: the company's). |
| `--dry-run` | No | Show whether it can be scheduled; change nothing. |

#### Examples

Check that the article can be scheduled. Nothing changes.

```
recala article schedule "$ARTICLE_ID" --at "$PUBLICATION_TIME" --dry-run
```

Schedule it in the company's timezone. It publishes at that time without asking again.

```
recala article schedule "$ARTICLE_ID" --at "$PUBLICATION_TIME"
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`10` CONFIRMATION_REQUIRED](https://recala.co/developers/reference/#exit-10), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala article share`](https://recala.co/developers/cli/article/#cmd-article-share)

Show the review link; --review-link makes one; --rotate / --revoke kill the old one (need --yes).

writes Acts on an organization [Supports --yes](https://recala.co/developers/agents/#guarded)

```
recala article share ARTICLE_ID [OPTIONS]
```

Replace uppercase arguments with your own values. Replace [OPTIONS] with the flags you need, or omit it.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--org` | No | Organization name, slug or id (else RECALA_ORG, else recala org use). |
| `--yes` | No | Only with an API key holding publish: approve, schedule or unpublish without a prompt. |
| `--review-link` | No | Turn the review link on (or replace it). |
| `--rotate` | No | Replace the article's share token; the old link stops working. |
| `--revoke` | No | Turn the review link off. |

#### Examples

Make a review link for the person.

```
recala article share "$ARTICLE_ID" --review-link
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`10` CONFIRMATION_REQUIRED](https://recala.co/developers/reference/#exit-10), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala article show`](https://recala.co/developers/cli/article/#cmd-article-show)

One article: status, author, hold, open questions (and the text with --markdown).

read Acts on an organization

```
recala article show ARTICLE_ID [OPTIONS]
```

Replace uppercase arguments with your own values. Replace [OPTIONS] with the flags you need, or omit it.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--org` | No | Organization name, slug or id (else RECALA_ORG, else recala org use). |
| `--markdown` | No | Include the article's text. |

#### Examples

Read the text, any hold and the open questions.

```
recala article show "$ARTICLE_ID" --markdown
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala article status`](https://recala.co/developers/cli/article/#cmd-article-status)

Where the article stands: review, publishing, author, hold, versions, review link.

read Acts on an organization

```
recala article status ARTICLE_ID [OPTIONS]
```

Replace uppercase arguments with your own values. Replace [OPTIONS] with the flags you need, or omit it.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--org` | No | Organization name, slug or id (else RECALA_ORG, else recala org use). |

#### Examples

Review, publishing, author, hold, versions and review link for one article.

```
recala article status "$ARTICLE_ID"
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala article submit`](https://recala.co/developers/cli/article/#cmd-article-submit)

Hand the article over for the person's review.

writes Acts on an organization

```
recala article submit ARTICLE_ID [OPTIONS]
```

Replace uppercase arguments with your own values. Replace [OPTIONS] with the flags you need, or omit it.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--org` | No | Organization name, slug or id (else RECALA_ORG, else recala org use). |

#### Examples

Hand it over for that person's review.

```
recala article submit "$ARTICLE_ID"
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`10` CONFIRMATION_REQUIRED](https://recala.co/developers/reference/#exit-10), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala article unpublish`](https://recala.co/developers/cli/article/#cmd-article-unpublish)

Take a published article off the site (the CMS first).

writes Acts on an organization [Supports --yes](https://recala.co/developers/agents/#guarded)

```
recala article unpublish ARTICLE_ID [OPTIONS]
```

Replace uppercase arguments with your own values. Replace [OPTIONS] with the flags you need, or omit it.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--org` | No | Organization name, slug or id (else RECALA_ORG, else recala org use). |
| `--yes` | No | Only with an API key holding publish: approve, schedule or unpublish without a prompt. |

#### Examples

Take a published article off the site.

```
recala article unpublish "$ARTICLE_ID"
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`10` CONFIRMATION_REQUIRED](https://recala.co/developers/reference/#exit-10), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala article unschedule`](https://recala.co/developers/cli/article/#cmd-article-unschedule)

Cancel the article's scheduled publication.

writes Acts on an organization [Supports --yes](https://recala.co/developers/agents/#guarded)

```
recala article unschedule ARTICLE_ID [OPTIONS]
```

Replace uppercase arguments with your own values. Replace [OPTIONS] with the flags you need, or omit it.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--org` | No | Organization name, slug or id (else RECALA_ORG, else recala org use). |
| `--yes` | No | Only with an API key holding publish: approve, schedule or unpublish without a prompt. |

#### Examples

Cancel a scheduled publication.

```
recala article unschedule "$ARTICLE_ID"
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`10` CONFIRMATION_REQUIRED](https://recala.co/developers/reference/#exit-10), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).

### [`recala article versions`](https://recala.co/developers/cli/article/#cmd-article-versions)

Every saved version of the article, or one of them with --show N.

read Acts on an organization

```
recala article versions ARTICLE_ID [OPTIONS]
```

Replace uppercase arguments with your own values. Replace [OPTIONS] with the flags you need, or omit it.

| Flag | Required | Description |
| --- | --- | --- |
| `--json` | No | Print one JSON document (errors as JSON on stderr). |
| `--org` | No | Organization name, slug or id (else RECALA_ORG, else recala org use). |
| `--show` | No | One version's text and changes. |

#### Examples

Read what changed.

```
recala article versions "$ARTICLE_ID"
```

**Exit codes:** [`0` OK](https://recala.co/developers/reference/#exit-0), [`1` ERROR](https://recala.co/developers/reference/#exit-1), [`2` USAGE](https://recala.co/developers/reference/#exit-2), [`3` NOT_AUTHENTICATED](https://recala.co/developers/reference/#exit-3), [`4` FORBIDDEN](https://recala.co/developers/reference/#exit-4), [`5` NOT_FOUND](https://recala.co/developers/reference/#exit-5), [`6` CONFLICT](https://recala.co/developers/reference/#exit-6), [`7` INVALID](https://recala.co/developers/reference/#exit-7), [`8` RATE_LIMITED](https://recala.co/developers/reference/#exit-8), [`9` UNAVAILABLE](https://recala.co/developers/reference/#exit-9), [`11` PAYMENT_REQUIRED](https://recala.co/developers/reference/#exit-11).

API commands share the CLI’s HTTP error mapping. [Read human and JSON output rules](https://recala.co/developers/reference/#json-output).
