# Request immediate publication

Request immediate publication and complete the separate approval in Beacon.

Immediate publication requires **Create posts** access. It also requires a separate Beacon approval.

## Send the first request

An idempotency key identifies one write request. Reuse the key only when you repeat that request.

```ts
await beacon.posts.create({
  channelIds: [channelId],
  confirmed: true,
  idempotencyKey: "publish-now-2026-08-28-update",
  state: "immediate",
  text: "The update is now available.",
});
```

Beacon returns a `BeaconError` with code `approval_required`. The error includes an approval URL.

## Complete the approval

1. Open `error.approvalUrl` for the signed-in user.
2. Review the exact content, channels, settings, and media.
3. Approve the request in Beacon.
4. Add `approvalId: error.approvalId` to the request.
5. Keep the same idempotency key.
6. Keep all other arguments unchanged.
7. Retry the request.

The approval expires after ten minutes. Changed content requires a new approval.
